在项目开发中,在Vue中的父组件向子组件传递数据是通过 v-bind:属性=“属性值”动态赋值,子组件通过props:{属性1,属性2,...}接收传递过来的数据。
值得注意的是,Vue中的props传递是单向的,也就是说父子组件的prop之间形成的是一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行。
这么做的原因是:防止在子组件中更改父级组件的状态
组件是可复用的,假设该子组件被复用了n次,当某一个组件意外地更改了其接受到的props数据 ----> 意味着,同时更改了父组件中相对应的属性值 ----> 意外地更改其它(n-1)个子组件中的 props数据,引起混乱
所以我们不应该在子组件中直接更改其props数据。
但有存在某些情况:必须对父组件传递过来的props进行转换处理,利用computed计算属性对数据进行处理。
例,在子组件中对props数据进行拼接字符串处理:
效果: