VUE的变异方法

image.png这些JavaScript原生也有,怎么vue里面还有,那么问题来了,这是JScript原生的方法怎么还在官网单独介绍写出来尼,单独介绍尼,直接看js文档不就好了吗

阅读 3.1k
1 个回答

英文翻译成中文没有办法特别精准的问题。

mutation变异 的含义;所谓变异方法,就是指调用以后能改变调用者自身状态的方法。

除了 Array 的这几个方法外,别的 JavaScript 内置对象里也有变异方法我想了一圈,应该只有 Date 对象的 setFullYear() / setMonth() / setDate() 等等几个方法了。

这些方法有一个共同特性,就是当你调用 obj.XXXX() 以后,obj 本身发生了改变;而不是 obj 不变、却返回一个新对象(比如 String 的 replace())。

Vue 双向绑定的原理是利用了 Object.defineProperty 重写了 get / set,以达到当属性的值发生变化时来更新试图的;但这有个缺陷,就是如果不是直接修改的属性,而是调用了变异方法,那么 Vue 并不知道其值已经发生改变,此时需要手动调用 Vue.set 以通知 Vue。为了缓解这个问题,Vue 对 Array 的上述方法进行了包装。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题