sarices
V2EX  ›  问与答

这个是 vue 的 bug 还是我的姿势不正确?

  •  
  •   sarices · Mar 27, 2019 · 1626 views
    This topic created in 2692 days ago, the information mentioned may be changed or developed.
    代码在这里
    https://jsfiddle.net/sarices/8ua5cjew
    就是赋给组件的一个变量,在组件内更新后,如果外面有任何变量更新,会导致赋给那个组件的变量初始化

    点 c++ c 会自动+1,但是点 set a=2 或者 set a=3 之后会导致 c 初始化
    6 replies    2019-03-27 17:06:13 +08:00
    koor
        1
    koor  
       Mar 27, 2019
    props 不能直接操作的啊,在 data 里面新建一个变量引用 c
    shintendo
        2
    shintendo  
       Mar 27, 2019   ❤️ 1
    单向数据流,prop 在父组件给值,子组件接收,不要在子组件里赋值
    如果你要把 prop 当初始值用,在本地 data 里复制一份
    sarices
        3
    sarices  
    OP
       Mar 27, 2019
    @koor
    @shintendo 感谢,困扰我多时,要深拷贝吧?
    rabbbit
        4
    rabbbit  
       Mar 27, 2019   ❤️ 1
    用 v-model 往里传可变值, 或者用 emit 抛个事件出去
    Hilong
        5
    Hilong  
       Mar 27, 2019   ❤️ 1
    出现这个情况是因为你给 a 直接赋值,引发了 data 的监听,然后 vue 刷新依赖, :c 就被重置成 b 的值了,你这种写法是不对的
    AppxLite
        6
    AppxLite  
       Mar 27, 2019
    楼上说的对,官方稳定也明确说明不要随意改变 props 值,会产生困惑。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2823 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 00:21 · PVG 08:21 · LAX 17:21 · JFK 20:21
    ♥ Do have faith in what you're doing.