vue中直接修改props中的值并未给出警告,为啥

vue官网在讲解props的单向数据流时提到:

额外的,每次父级组件发生更新时,子组件中所有的 prop 都将会刷新为最新的值。这意味着你不应该在一个子组件内部改变 prop。如果你这样做了,Vue 会在浏览器的控制台中发出警告。

但是我测试,直接修改props的值,并未给出任何警告。
大家有遇到吗?


白衣染霜花
浏览 3104回答 2
2回答

茅侃侃

如果props传入的值是引用类型,在子组件中改变其元素,不改变引用,那么不报错。如果是普通类型,那么在修改时浏览器控制台会有报错信息

哔哔one

接着往下看在两种情况下,我们很容易忍不住想去修改 prop 中数据: Prop 作为初始值传入后,子组件想把它当作局部数据来用; Prop 作为原始数据传入,由子组件处理成其它数据输出。 对这两种情况,正确的应对方式是: 定义一个局部变量,并用 prop 的值初始化它: props: ['initialCounter'], data: function () {  return { counter: this.initialCounter } } 定义一个计算属性,处理 prop 的值并返回: props: ['size'], computed: {   normalizedSize: function () {    return this.size.trim().toLowerCase()   } }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Vue.js