一、整体渲染流程
众所周知 vue 的渲染从其入口函数,即createApp(APP).mount('#app')
开始,整体的大概流程如下所示:
2024/9/12大约 6 分钟
众所周知 vue 的渲染从其入口函数,即createApp(APP).mount('#app')
开始,整体的大概流程如下所示:
无论是哪种 Diff 算法,都遵循同样的处理规则:
- 判断是否有节点需要移动,以及应该如何移动;(可复用的节点)
- 找出那些需要被添加或移除的节点。(其他的节点)
const count = ref(1);
effect(() => {
renderer(`<h1>${count.value}</h1>`, document.getElementById('app'));
});
count.value++;
编译器将 源代码 翻译为 目标代码 的过程叫作编译(compile)。完整的编译过程通常包含词法分析、语法分析、语义分析、中间代码生成、优化、目标代码生成等步骤。
霍春阳《Vue.js 设计与实现》的笔记
目录结构
├─src # 项目源代码
│ ├─complier # 与模板编译相关的代码
│ ├─core # 通用的、与运行平台无关的运行时代码
│ │ ├─observe # 实现变化侦测的代码
│ │ ├─vdom # 实现virtual dom的代码
│ │ ├─instance # Vue.js实例的构造函数和原型方法
│ │ ├─global-api # 全局api的代码
│ │ └─components # 内置组件的代码
│ ├─server # 与服务端渲染相关的代码
│ ├─platforms # 特定运行平台的代码,如weexsh
│ ├─sfc # 单文件组件的解析代码
│ └─shared # 项目公用的工具代码
副作用函数是指会产生副作用的函数,即它会直接或间接地影响其他函数的执行。