1 Star 0 Fork 4

Ashleey/百度前端技术实战训练营结课作业

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
MVVM.js 902 Bytes
一键复制 编辑 原始数据 按行查看 历史
Ashleey 提交于 2022-07-25 17:14 . init
import Observer from "./observer";
import Compile from "./compile";
export default class MVVM{
constructor(options) {
// 将可用内容挂载到实例上
this.$el = options.el;
this.$data = options.data;
// 如果有要编译的模板就开始编译
if(this.$el){
// 数据劫持 把对象的所有属性改成get和set方法
new Observer(this.$data);
this.proxyData(this.$data);
// 用数据和元素进行编译
new Compile(this.$el, this);
}
}
proxyData(data){
Object.keys(data).forEach(key=>{
Object.defineProperty(this, key, {
get(){
return data[key];
},
set(newValue){
data[key] = newValue;
}
})
})
}
}
window.MVVM = MVVM;
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ashleey/mvvm.git
git@gitee.com:ashleey/mvvm.git
ashleey
mvvm
百度前端技术实战训练营结课作业
master

搜索帮助