vue2数组如何实现响应式,vue实现响应式数据的原理

  vue2数组如何实现响应式,vue实现响应式数据的原理

  本文主要详细介绍vue阵列的数据响应原理。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下,希望能帮到你。

  

目录

   src/core/observer/index . js src/core/observer/array . js array方法摘要

  

src/core/observer/index.js

  

src/core/observer/array.js arrayMethods

  当数据的数组对象中没有属性,然后点击按钮动态添加一个属性时,这个属性没有get和set,也就是没有响应机制。如果希望动态添加的属性具有响应性更改,可以直接在数据源初始化该属性。详见下一篇文章。在给后端返回的结果的数组对象添加属性时,建议在循环赋值完成后,将属性赋给数据中对应的变量,这样数据中的变量就会给每个数组对象中的属性添加get和set。比如后端返回的一个数组对象是[{xx: 1},{xx: 2}],那么,我们得到这个数组对象后,把它赋给this.list,那么我的数据中的list的两个数组对象中的xx属性都有get和set,换句话说就是有响应。如果我们想在点击按钮时动态添加一个cc属性到当前数组对象,this.list[0]。cc=2,请注意,此时cc属性被添加到我们对应的数组对象中,但它没有响应。要解决这个问题,只需在获取后端数据时直接循环添加cc属性,设置为null,然后赋给this.list调试即可

  我们可以看到上面的数组在第一步开始的时候只有[1,2,3]三个元素,然后我们执行push方法的时候增加了一个元素,视图实时更新。这是因为vue在源代码中已经响应了修改数组的方法。让我们看看修改列表数组的第三和第四部分也生效了,但是视图没有实时更新。这是因为vue只修改了一些数组方法,对数组中的对象增加了响应操作。这是因为数组可能很长,为了提高性能,它没有响应数组的每个元素。如果我们想要实现第三和第四步响应,我们可以使用阵列的拼接方法。

  

总结

  本文到此为止。希望能帮到你,也希望你能多关注我们的更多内容!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: