Vue中父组件向子组件传递数据,子组件为什么不应该直接更改props数据?如果更改的话会有什么影响?


在项目开发中,在Vue中的父组件向子组件传递数据是通过 v-bind:属性=“属性值”动态赋值,子组件通过props:{属性1,属性2,...}接收传递过来的数据。

值得注意的是,Vue中的props传递是单向的,也就是说父子组件的prop之间形成的是一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行

这么做的原因是:防止在子组件中更改父级组件的状态

组件是可复用的,假设该子组件被复用了n次,当某一个组件意外地更改了其接受到的props数据 ----> 意味着,同时更改了父组件中相对应的属性值 ----> 意外地更改其它(n-1)个子组件中的 props数据,引起混乱

所以我们不应该在子组件中直接更改其props数据。

但有存在某些情况:必须对父组件传递过来的props进行转换处理,利用computed计算属性对数据进行处理。

例,在子组件中对props数据进行拼接字符串处理:

 

 

 

 效果:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM