# vue3-analysis **Repository Path**: howw/vue3-analysis ## Basic Information - **Project Name**: vue3-analysis - **Description**: 学习vue3源码时的资料 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-11 - **Last Updated**: 2024-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README --- title: Vue3解析 home: true actionText: 开始 → actionLink: /v3/idea/vue meta: - name: og:title content: Vue3解析 - name: og:description content: 全面系统的了解Vue3 --- --- ### 引言 在学习`Vue3`期间断断续续查阅了各种资料,但是一直没有找到一份完整的系统的对`Vue3`进行剖析的资料, 于是决定写这一整个`Vue3`解析也是希望能系统全面的概括到`Vue3`的大部分内容;在构思这整个`Vue3`解析时, 先后看了尤大的`state of vue3`、`vue conf`等等演讲内容感觉受益匪浅, 于是决定在开始`Vue3`解析前好好聊一聊`vue`的设计理念、升级重心等等前置内容。 在`Vue2`的时代,通过数据驱动和组件化系统已经将视图开发简化到一个非常直观的层次,基本上简单熟悉下一下`API`就能做出一个不错的系统; 快速上手固然很好,但是不曾了解原理可能会产生一些困惑,例如: > 1. 在`vue`内部修改了模板依赖的属性或者值,需要在`nextTick`中访问到`dom`的同步更改 > 2. 对于定义好的响应式对象不能够动态的添加新的元素和属性(`Vue2.x`),否则新增加的属性会没有响应式效果 > 3. ...... 其中一些困惑可能来自`vue`运行机制带来的心智负担,也有一些来自实现`vue`特性所使用`JavaScript`语言版本的局限; 对于阅读理解一个框架来说,如果我们从`API`入手可能不是那么合理,因为`API`的设计封装是服务于框架抽象的模式与设计理念的, 当我们我们理解完一个`API`的实现后,如果没有对整体系统设计的了解总是会被某某`API`为什么要这样实现所困惑; 所以从框架的设计理念入手再深入到`API`的实现就会显得更加合理一些,我们有必要适当的了解`vue`背后的设计理念; 框架的实施践行设计者的思想,如果我们能带着对框架本身架构设计的思考去阅读源码,肯定是可以 get 到更多知识点的, 同时这也让我们的理解更加立体,在深入到源码中时能更加容易的串联整体。 ### 内容安排 **理念篇** 主要关注`Vue3`的升级重心和`Vue`设计思想 **运行时篇** 主要关注组件系统和运行时调度以及`VNode`相关知识点 **响应式系统** 主要关注响应式`API`的实现 **扩展篇** 主要关注内建组件和实用特性例如:`Props`、`Slot`和指令等等