Vue数据改变视图没变? :bind传递值和对象的区别?

  首先这是一片记录性的文章,只能给观看的人提供一种问题的解决思路,个人目前并没有兴趣或者是时间去翻看Vue的源码,所以不喜勿喷~
  #问题背景:
由于自己项目的需求需要用到VueDraggable这个插件,用来实现拖拽改变数组数据的功能,看起来和测试都没什么问题。但是在自己的项目上实验的时候,发现鼠标拖动完,事件确实触发了,测试的时候数组内容也发生改变了,为啥页面上的东西看起来就是没有变化呢??
  #解决:
  在我反复确认不是参数或者是设定出问题之后,把矛头指向了:bind上面,我发现别人的demo里面用的都是最简单的标签比如p,div之类的
而我的是自己封装的一个组件,同时把数组中的对象bind到组件之中。然后就测试,在我自己的封装的组件中,只传对象的一个值,不传整个对象,发现视图竟然真的变化了。
所以我第一反应是,把整个对象的所有属性拆分开传递过去。但是怎么想怎么不合适,就单从封装和可维护性上而言。。然后哈哈哈哈哈哈哈哈就是我自己佩服自己的无敌的解决办法,传过去对象的同时把一个一定会有的属性值也传递过去,比如key或者name什么,就强制导致视图跟着数组发生变化啦哈哈哈哈,半个上午解决了个虽然本身不应该存在但是还是不是很小并且比较重要的问题,嗯,高兴!
  #目前只能猜测
  :bind 一个属性和一整个对象在这里好像是有差距的,如果我只传递一个对象,传过去的应该只是一个引用值,尽管原对象数组顺序发生改变了,但是对象的地址或者是某种引用关系并没有发生改变。而当我传递一个属性值过去的时候,传过去的值就是值,数组变了,原索引的值就不是那个值了,所以视图发生了刷新!

###求大佬点明指正!!
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值