实现 MVVM 类 Vue 迷你框架(一)

人生代码

共 1222字,需浏览 3分钟

 ·

2021-03-23 19:16

如何实现 MVVM 类 Vue 迷你框架(一)

MVVM 框架的三大要素:

  • 数据响应式
    • 使用 Object.defineProperty 属性
    • 使用 ES6 Proxy
    • 监听数据变化,更新到视图上
  • 模板插值
    • 提供模板语法与数据绑定
    • 插值:{{ }}
    • 指令:v-bind,v-model 等等。
  • 模板渲染
    • 如果将模板转成 html
    • 将实际数据替换到模板插值中
    • 渲染
    • 模板-> vdom -> real dom

初体验响应式

function defineReactive(obj, key, value{
 Object.defineProperty(obj, key, {
     get() {
        // 获取数据
         return obj[key]
      },
      set(newValue) {
        // 设置数据
         if(value !== newValue) {
          value = newValue
         }
      }
   })
}

测试一下数据是否被真的拦截

const obj = {};
defineReactive(obj, 'name''ken');
obj.foo; // name
obj.foo = 'KenNaNa'// KenNaNa


浏览 32
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报