关于Vue父子组件传值(复杂数据类型的值)的细节点
vue 父子组件传值是很常见的,多数情况下都是父传递给子的值是基础数据类型,如string,number,boolean,
当父组件值被修改时,子组件能够实时的作出改变。
如果父子传值的类型是复杂数据类型(object,array)这种时,
1.通常的做法是在子组件监听props属性
<!--父组件--> <div class="parent"> <!--子组件--> <child :val="val"></child> </div> <script> export default { data(){ return { val:{ name:'name', age:'18' } }
} } </script>
<! 子组件监听props> <div class="child"> {{val.name +":"+ val.age}} </div> <script> export default { props:'val', data(){ return {}}, watch:{ val:{ handle(newVal){ console.log(newVal) }, deep:true } } } </script>
细节点:这里监听到父组件的值被修改时,不要在回调里再对此值做修改操作,否则提示报错,并进入死循环导致浏览器gg
2.还有一种做法是在父组件修改,避免进坑
官方文档有说明https://cn.vuejs.org/v2/guide/list.html#%E6%95%B0%E7%BB%84%E6%9B%B4%E6%96%B0%E6%A3%80%E6%B5%8B
本人除了做前端开发,还在公众号写点文章,欢迎用共同兴趣爱好的朋友关注下,交个朋友噢!