DMQ / mvvm

剖析vue实现原理,自己动手实现mvvm

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

能否加入对数组观察的支持

undefined27 opened this issue · comments

能否加入对数组观察的支持
commented

他明确说明只是简版的实现,想改良,可以去参考下vue,人家只是讲了下原理

commented

我自己翻版了一个,支持观察数组,希望能帮到你
https://github.com/bowencool/bue

Vue 2.x 通过 Object.defineProperty 来劫持是不支持数组的,你可以用 es6 proxy 来实现对数组的观察,实际上,Vue 3.0 也是通过 proxy 来实现。具体你可以查 proxy 双向绑定。

No description provided.

Object.defineProperty

Vue 2.x 通过 Object.defineProperty 来劫持是不支持数组的,你可以用 es6 proxy 来实现对数组的观察,实际上,Vue 3.0 也是通过 proxy 来实现。具体你可以查 proxy 双向绑定。

arr.forEach(function(val,index) {
        Object.defineProperty(data, index, {
            enumerable: true, // 可枚举
            configurable: false, // 不能再define
            get: function() {
                return val;
            },
            set: function(newVal) {
                console.log('哈哈哈,监听到值变化了 ', val, ' --> ', newVal);
                val = newVal;
            }
        });
	});