Appearance
Vue 3 框架设计概述
根据前面的学习,我们已经了解了:
- 什么是声明式
- 什么是命令式
- 什么是运行时
- 什么是编译时
- 什么是运行时 + 编译时
- 同时也知道了 框架的设计过程本身是一个不断取舍的过程
了解了这些内容后,下面来说一下 vue3
的基本框架设计:
对于 vue3
而言,核心大致可以分为三大模块:
- 响应性:
reactivity
- 运行时:
runtime
- 编译器:
compiler
我们参考以下伪代码来尝试简单描述一下三者之间的基本关系:
vue
<template>
<div>{{proxyTarget.name}}</div>
</template>
<script>
import { reactive } from 'vue'
export default {
setup(){
const target = {
name:'张三'
}
const proxyTarget = reactive(target)
return {
proxyTarget
}
}
}
</script>
- 从
vue
中接收reactive
方法,reactive
方法可以接收一个target
(复杂数据类型),返回一个proxyTarget
(代理对象,target
就是被代理对象),proxyTarget
触发set
或get
行为的时候,都会产生副作用 - 编译器会将
template
的内容进行解析,解析出来的内容变成render
函数 - 在运行时把
render
函数进行渲染,从而得出真实dom
其实还有别的模块,例如SSR,也可以去了解一下。