vue原理

作者: 晓露_0d5c | 来源:发表于2020-07-21 14:54 被阅读0次

1、vue原理主要包含三块:
(1)数据劫持
将data中所有的数据,通过Object.defineProperty劫持
Object.defineProperty(obj,key,{
      enumerabel:true,
    get(){
    return val;
},
set(newVal){
    if(newVal === val) return;
    val = newVal; //使得get的时候返回新的值
}
})

(2)模板编译
将页面中的双大括号的文本节点的内容和通过v-model绑定的内容,查找并替换。
这里使用虚拟dom的方法,先把内容存到内存中,再去查找和替换,最终结果再挂回去。
function compile(){
       
}

(3)发布订阅模式
订阅:将要发布的方法统一放在一个数组中,将要发布的方法统一有一个update方法
function Dep(){
    this.subs=[];
}
Dep.prototype.addSub = function(sub){
    this.subs.push(sub)
}
Dep.prototype.notify = function(){
    this.subs.forEach(sub=>sub.update());
}

发布:所有的发布方法有一个update方法
function Watcher(fn){
    this.fn = fn
}
Watcher.prototype.update(){
    this.fn();
}
2、使用发布订阅模式将数据劫持和模板编译结合,实现双向绑定
数据在get的时候对数据添加订阅和发布(响应)的方法,
数据在set的时候,触发订阅的方法,去执行方法(dep.notify())

这个逻辑有点绕,需要多整理几遍
git地址

相关文章

  • vue总结

    vue路由守卫 vue实现双向绑定原理 Vue生命周期: vue跨域方式 vue-router实现原理 vue-r...

  • 面试总结之基础(2)

    Vue2响应式原理 Vue3响应式原理

  • vue原理面试题资源整理

    vuex面试题 Vue生命周期 周期2 Vue通信 父子 兄弟 Vue响应式原理 MVVM Vue axios原理...

  • VUE(面试题)

    1、vue双向绑定原理vue2.x:vue双向绑定的原理是利用了Object.defineProperty()这个...

  • Vue面试题集锦

    VUE的双向绑定原理 原理:在创建Vue实例时,Vue会遍历data选项的属性,利用Object.definePr...

  • Vue响应式原理

    Vue2.x 核心响应式原理 Vue3.0 核心响应式原理 Vue 自定义事件 Vue 发布订阅模式 发布/订阅模...

  • Vue 父组件 传值 子组件 不生效

    原理 父组件.Vue 子组件.Vue 拓展

  • 前端TODO

    Vue.js 等框架原理了解 webpack 原理了解 browserify 插件开发 Vue.js 等框架原理学习

  • vue系列--- vue响应式原理

    vue响应式原理 要说vue响应式原理首先要说的是Object.defindProperty(),这个是响应式原理...

  • 关于vue常见的题目

    1. 简述vue响应式原理 2. 计算属性的原理 3. Vue.nextTick 原理 用法: 理解:nextTi...

网友评论

      本文标题:vue原理

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