当前位置: 首页 > Web前端 > vue.js

避免直接修改prop,因为值会被覆盖...

时间:2023-03-31 18:34:40 vue.js

Vue警告:避免直接修改prop,因为值会被覆盖...原因:props的值不能改变本质:双向绑定形成通信的问题是在某些情况下,我们可能需要对一个prop进行“双向绑定”。事实上,这正是Vue1.x中的.sync修饰符所提供的。当子组件更改prop的值时,更改也会同步到父组件中的绑定值。这很方便,但也可能导致问题,因为它打破了“单向数据流”的假设。因为子组件改变prop的代码和普通的状态改变代码没有区别,所以当你只看子组件的代码时,你根本不知道它什么时候悄悄地改变了父组件的状态。在调试具有复杂结构的应用程序时,这会导致高昂的维护成本。以上正是我们在2.0中删除.sync的原因。但是在2.0发布之后的实际应用中,我们发现.sync还是有它的应用,比如在开发可复用的组件库时。我们需要做的就是让子组件中更容易区分改变父组件状态的代码。从2.3.0开始,我们重新引入了.sync修饰符,但这次它仅作为编译时语法糖存在。它将扩展为自动更新父组件属性的v-on侦听器。1..sync方法如果vue版本是2.3.0+,可以使用.sync将扩展为:bar=val">当子组件需要更新foo的值时,需要显式触发更新事件this.$emit('update:foo',newValue)2.对象特性双向绑定利用对象的引用特性,可以传入对象,在子组件中修改对象属性的值,父组件中的值也会随之改变。原文:https://blog.csdn.net/qq_36571602/article/details/77801136