vue官网在讲解props的单向数据流时提到:额外的,每次父级组件发生更新时,子组件中所有的 prop 都将会刷新为最新的值。这意味着你不应该在一个子组件内部改变 prop。如果你这样做了,Vue 会在浏览器的控制台中发出警告。但是我测试,直接修改props的值,并未给出任何警告。大家有遇到吗?
2 回答
哔哔one
TA贡献1854条经验 获得超8个赞
接着往下看
在两种情况下,我们很容易忍不住想去修改 prop 中数据:
Prop 作为初始值传入后,子组件想把它当作局部数据来用;
Prop 作为原始数据传入,由子组件处理成其它数据输出。
对这两种情况,正确的应对方式是:
定义一个局部变量,并用 prop 的值初始化它:
props: ['initialCounter'],
data: function () { return { counter: this.initialCounter }
}
定义一个计算属性,处理 prop 的值并返回:
props: ['size'],
computed: {
normalizedSize: function () { return this.size.trim().toLowerCase()
}
}添加回答
举报
0/150
提交
取消
