关于Vue父子组件传值(复杂数据类型的值)的细节点

2019-08-14 10:33:39来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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

 

 本人除了做前端开发,还在公众号写点文章,欢迎用共同兴趣爱好的朋友关注下,交个朋友噢!


原文链接:https://www.cnblogs.com/ikumi/p/11339769.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:es6学习笔记(二)

下一篇:javaWeb核心技术第三篇之JavaScript第一篇