其他分享
首页 > 其他分享> > Vue 计算属性 和 多组件混入使用经验总结

Vue 计算属性 和 多组件混入使用经验总结

作者:互联网

场景:想让一个对象在两个组件A和B中混入,使用共同的方法,然后A组件中改变混入对象的值,B组件的值得到相应的改变,以最少的代码实现对象复用。

 

问题:对象都能够成功混入到两个组件中,但是A组件改变混入对象的值,B组件中混入对象的值不变。

 

原因分析:混入到两个组件中的对象是被复制的,不是单例的,即两个组件都拷贝了一份混入对象的副本,两个对象之间的数据域是分开的,改变其中一个,另外一个不受影响。

 

解决方式:在第二个组件中加监听事件,用于更新混入对象的值,这样两个组件中的被混入对象的值都更新了,此时可以使用公共的计算属性,两个组件中的值都会变化。

代码:

被混入的对象

export const data =  {
  name: 'data',
  data() {
    return {
      data:{
        value1:1,
        value2:2,
      }
    }
  }
}

组件B中写监听事件

//组件通信
created(){
  //全局监听事件(地图上画线)
  Bus.$on("data", (data) => {
    this.data= data;
  });
},

组件A中的数据改变后,调用组件B的监听事件来改变组件B中混入对象的值。

Bus.$emit("data",this.data);

 

标签:混入,Vue,对象,改变,组件,data,监听,经验总结
来源: https://www.cnblogs.com/spqin/p/15364893.html