美文网首页
数组变异方法(vue: ^2.0)

数组变异方法(vue: ^2.0)

作者: 鹏飞_6b7f | 来源:发表于2019-11-02 09:35 被阅读0次

Object.defineProperty 监听拦截中存在的一些问题

@:Vue框架中监听数组属性值的变化

Object.defineProperty(x, '?' , {})无法指定数组中需要监听的属性值

这时我们通过变异的方法来处理(拦截push方法)

🌰

let arr = [1,2,3]

let push = Array.prototype.push;

Array.prototype.push = function (...args) {

    console.log( '变异方法' ) // 监听处理

    push( ...args )  // 这里需要处理this指向问题

    push.call( this, ...args )

}

arr.push(args)

上面通过重写push方法来处理,当有push方法调用时会执行我们自定义的push方法,每次有push动作都会被监听到了

上面只是一个栗子

数组方法: push pop shift unshift splice sort reverse 都可以用这种方法处理

有些数组方法为啥没改写?

这是因为像filter map 这些方法 并不是改原有数组,而是返回一个新数组

本人的一点总结,如有不足之处,多多指点

相关文章

  • 数组变异方法(vue: ^2.0)

    Object.defineProperty 监听拦截中存在的一些问题 @:Vue框架中监听数组属性值的变化 Obj...

  • Vue 数组更新、过滤与排序

    数组更新 数组变异方法 mutation method Vue 包含一组观察数组的变异方法(mutation m...

  • VUE数据data更新而列表不更新,关于VUE的响应式原理的几个

    关于数组 使用数组变异方法对Vue实例中data里面的数组使用变异方法操作的时候,Vue可以检测到变化并进行更新变...

  • Vue 数组更新检测

    Vue 数组更新检测 变异方法 Vue包含一组观察数组的变异方法,所以它们也将会触发视图更新。这些方法如下: pu...

  • Vue 数组更新检测

    变异方法 Vue 包含一组观察数组的变异方法,所以它们也将会触发视图更新 替换数组 非变异 (non-mutati...

  • 2019/10/19 VUE数组更新检测

    #变异方法 作用 : 改变这些方法调用的原始数组 VUE包含一组观察数组的变异方法,他们也将触发视图的更新 数组方...

  • Vue 数组更新检测

    变异方法 Vue 包含一组观察数组的变异方法,所以它们也将会触发视图更新。这些方法如下: push() pop()...

  • Vue学习笔记(6)-触发视图更新

    Vue对一些方法进行了包装和变异,以后数组通过这些方法进行数组更新,会出发视图的更新。这些方法如下: push()...

  • vue2.0的数组劫持

    Object.defineProperty不支持监听数组变化。所以需要重写数组上面的方法。 vue2.0对数组的方...

  • Vue实例-2

    数组更新 变异方法 Vue内置指令 v-text:更新元素的 textContent。如果要更新部分的 textC...

网友评论

      本文标题:数组变异方法(vue: ^2.0)

      本文链接:https://www.haomeiwen.com/subject/wpjcbctx.html