知识点总结---Vue.js

Vue 原理

MVVM模型

简介

MVVM 是 Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对 ViewViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自动传递给 View,即所谓的数据双向绑定。
Vue.js 是一个提供了 MVVM 风格的双向数据绑定的 Javascript 库,专注于 View 层。它的核心是 MVVM 中的 VM,也就是 ViewModel。 ViewModel负责连接 View 和 Model,保证视图和数据的一致性,这种轻量级的架构让前端开发更加高效、便捷。

在这里插入图片描述

MVVM 应用于 Vue

  • Model: 指的是定义的各种数据,如对象,数组等等
  • View: 指的是页面视图
  • ViewModel: 指的是 vue 实例化对象

原理解析

原理图

在这里插入图片描述

数据劫持和发布订阅模式

  • Vue 通过三个核心类来实现数据劫持和发布订阅模式以及 Compile 类来解析模板指令。

    • Observer:用来劫持并监听所有属性,如果有变动的,就通知订阅者。

      Observer 的核心是通过 Obeject.defineProperty() + 递归的方法来给每个数据添加 setter 和 getter 以达到监听数据的变动的功能。每当数据发生变化,就会触发 setter。这时候 Observer 就会通过 Dep.notify()去通知订阅者去更新视图。

    • Dep:Observer 与 Watcher 的中转站,对依赖进行收集并通知变化。

      该类定义一个 subs 数组存放 watcher,也就是进行依赖收集。每当 Observer 监听到数据变化,Dep 就会通过 notify() 通知 subs 中存放的 watcher 进行 update() 操作来更新。

    • Watcher:可以收到属性的变化通知并执行相应的函数,从而更新视图。

      Watcher 实例化必须有一个 update() 方法,待属性变动,Dep 实例通过 notif() 通知时,watcher 能调用自身的 update() 方法去触发 Compile 中绑定的回调,从而实现视图更新。

    • Compile:解析模板指令,添加监听数据的订阅者。

      Compile 主要是用于解析模板指令,将模板中的变量替换成数据,初始化渲染页面视图,并将每个指令对应的节点绑定更新函数,添加监听数据的订阅者,一旦数据有变动,收到通知,更新视图。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值