⌨️框架原理 —— mini-vue
00 分钟
2023-3-8
2023-3-8
type
status
date
slug
summary
tags
category
icon
password
Edited
Mar 8, 2023 01:08 PM
Created
Mar 8, 2023 12:58 PM

概念图

响应式原理
每个组件实例都对应一个 watcher 实例,会在组件渲染的过程中把“接触”过的数据 property 记录为依赖。之后当依赖项的 setter 触发时,会通知 watcher,从而使它关联的组件重新渲染。
notion image

架构

  1. Vue类负责把data中的属性注入到Vue实例,并调用Observer类和Compiler类。
  1. Observer类负责数据劫持,把每一个data转换成gettersetter。其核心原理是通过Object.defineProperty实现。
  1. Compiler类负责解析指令和插值表达式(更新视图的方法)。
  1. Dep类负责收集依赖、添加观察者模式。通知data对应的所有观察者Watcher来更新视图。在Observer类把每一个data转换成gettersetter时,会创建一个Dep实例,用来负责收集依赖并发送通知。在每一个data中在getter中收集依赖。在setter中通知依赖,既通知所有Watcher实例新视图。
  1. Watcher类负责数据更新后,使关联视图重新渲染。
notion image

实现

文件目录结构

notion image

Vue

Observer

Compiler

Dep

Watcher

 

参考链接

  1. mini-vue | Mirai 白 (gitee.io)
 
上一篇
框架原理 —— mini-react
下一篇
手写系列 —— Async & Await

评论
Loading...