Vue中解决多个组件引用了同一个对象作为数据时,当一个组件改动了数据对象时,其他对象的数据也会随着同步改动的情况

当组件间传递对象时,由于此对象的引用类型指向的都是一个地址(除了基本类型跟null,对象之间的赋值,只是将地址指向同一个,而不是真正意义上的拷贝),所以会导致下面的问题:

var obj = {a:10};
var obj2 = obj;
obj2.a = 20; // obj2.a改变了,
alert(obj.a); // 20,obj的a跟着改变

如果需要这种双向数据绑定的话,那么是最好的,但是如果不需要,而是希望各组件的对象数据之间相互独立,即是互不关联的对象的副本的话,那么可以使用下面的方法:

computed: {
    data: function () {
      var obj={};
      obj=JSON.parse(JSON.stringify( this .templateData)); //this.templateData是父组件传递的对象
      return obj
   }
  }

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要将整个页面的代码形成一个整体,方便改动,可以使用以下方法: 1. 使用模块化的 CSS:将页面的样式划分为多个模块,每个模块负责管理特定的样式规则。可以使用 CSS 预处理器(如 Sass 或 Less)来实现模块化的 CSS。这样,每个模块的样式都可以独立地修改和维护,方便代码的改动。 2. 使用组件化的 JavaScript:将页面的功能划分为多个可复用的组件,每个组件负责管理特定的功能和交互。可以使用 JavaScript 框架(如 React、Vue.js 或 Angular)来实现组件化的 JavaScript。这样,每个组件的代码都可以独立地编写、测试和维护,方便代码的改动。 3. 使用模板引擎:将页面的 HTML 代码划分为多个可复用的模板片段,每个模板片段负责生成特定的 HTML 结构。可以使用模板引擎(如 Handlebars、EJS 或 Pug)来实现模板化的 HTML。这样,每个模板片段都可以独立地修改和维护,方便代码的改动。 4. 使用版本控制工具:使用版本控制工具(如 Git)来管理整个页面的代码。通过将代码存储在版本控制库,可以轻松地追踪代码的改动、回滚到之前的版本以及协作开发。这样,可以方便地进行代码的改动和管理。 以上方法可以帮助你将整个页面的代码形成一个整体,方便改动。选择适合你项目需求和团队协作方式的方法,并进行相应的实施和工作流程调整。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值