vue子组件修改父组件传递过来的值

这里再也不赘述父子组件及子父组件传值,不懂的同窗能够翻看我之前写过的关于二者传值的文章html

父子组件传值:https://www.cnblogs.com/Sky-Ice/p/9267192.htmlcomponent

子父组件传值:https://www.cnblogs.com/Sky-Ice/p/9289922.htmlhtm

 

直接进入正题,把一个布尔值传递给子组件,而后,在子组件中修改该值,会报错blog

Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders

  缘由:事件

在 Vue 中,父子组件的关系能够总结为 prop 向下传递,事件向上传递。父组件经过 prop 给子组件下发数据,子组件经过事件给父组件发送消息。it

Prop 是单向绑定的:当父组件的属性变化时,将传导给子组件,可是反过来不会。这是为了防止子组件无心间修改了父组件的状态,来避免应用的数据流变得难以理解。class

 解决办法:
  原理:将要更改的值,传递给父组件,在父组件中更改,再传递给子组件
 步骤:
  先将值传递给子组件,子组件 props 接收并使用,而后经过 $emit 广播一个事件给父组件,并将值一并传递,父组件 @子组件广播过来的事件,并定义一个方法,在该方法中,改变传递过来的值,父组件又会将值传递给子组件,这样就造成了一个闭环,问题得以解决
相关文章
相关标签/搜索