Skip to content
This repository has been archived by the owner on May 7, 2021. It is now read-only.
/ mvvm Public archive

前端mvvm实现 加入proxy 支持数组

Notifications You must be signed in to change notification settings

notbucai/mvvm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

前端 mvvm 实现

2019-08-30 更新proxy实现

MDN 元编程,MDN Proxy,MDN Reflect,

个人感觉 mvvm还是 proxy(解决数组) 和 Object.defineProperty (对象每个key监听)
如果监听数组的话还是需要监听一下length属性的
单独proxy实现mvvm资源太浪费的

代码在 mvvm-proxy.html

放上一张图

mvvm

数据劫持: vue.js 则是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。

1.对数据进行劫持 2.getter 添加订阅 setter 通知订阅者 更新视图 3.解析指令 绑定订阅者 第一次更新视图 创建订阅者 获取(getter)当前value 触发(添加订阅) 4.当setter发生改变 就通知订阅者

About

前端mvvm实现 加入proxy 支持数组

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published