我明白了,Vue3设计与实现-vue3的设计思路读后感

简介: 第二章了解了一个框架设计的核心要素,vue在这方面表现很不错。 开发体验、框架的体积、输出的资源格式、特性的开关、错误的处理、类型支持等等,vue都有考虑。

前言

第二章了解了一个框架设计的核心要素,vue在这方面表现很不错。
开发体验、框架的体积、输出的资源格式、特性的开关、错误的处理、类型支持等等,vue都有考虑。
让我对接下来的章节更加感兴趣了,开始第三章 vue3的设计思路,很棒哇,我特别想知道,好,开始看。

声明式描述UI

通过模板来描述UI:vue中可以直接使用声明式的使用 html标签+属性+事件来创建一个带属性带事件操作的DOM元素。这种性能做过优化。

通过JS对象来描述UI:也支持你通过自定义虚拟DOM(JS对象)来创建一个带属性带事件操作的DOM元素。这种比较灵活。

vue的h函数是用来拿到虚拟DOM(js对象)的,然后通过render函数递归的渲染DOM元素或者组件。

渲染器

渲染器的作用是将虚拟dom转成真实DOM,这种转换是通过虚拟dom的结构来进行遍历,取出里面的tag、事件、children内容等等,然后通过常规的DOM操作来生成真实的DOM,并挂载到页面中。

render函数的参数 就是虚拟dom和DOM容器,也就是将虚拟DOM转成真实DOM并挂载到你传入的容器中。

组件本质

组件里面装的就是一堆DOM元素的字符串,这些字符串最终会被转成虚拟DOM,然后还是会用到renderer函数去转成真实的DOM。

虚拟dom的tag如果是普通标签就会使用mountElement来转成真实dom并且挂载。

虚拟dom的tag如果是函数,那么就代表它是个组件,那么就会使用mountComponent,里面的renderer函数来转成真实dom并且挂载。

虚拟dom的tag如果是对象,那么也可以代表它是个组件,那么就会调用这个对象的render函数来获取虚拟dom,然后再使用renderer函数来转成真实dom并且挂载。

组件的tag可以有多种表达形式,函数、对象都行。有状态的组件采用的是对象结构来表达的。

模板工作原理

编译器将html模板转成生成虚拟dom的函数,然后再由虚拟dom转成真实dom并挂载。

各个模块组成的有机整体

渲染器将虚拟dom转成真实dom。

编译器将模板转成生成虚拟dom的函数,不仅如此,编译器可以给虚拟dom打上标记,从而可以通过知道那些虚拟dom会发生变化,哪些虚拟dom不会发生变化,也就是静态和动态之分,从而让渲染器更快的找到要更新的DOM元素,更新的效率就更高了。

总结

vue采用模板来描述UI,编译器会将模板转成生成虚拟dom的函数,并且对dom进行标记,最终使用渲染器来将虚拟dom转成真实dom并挂载到页面中。

渲染器中的使用的是常规的dom操作,通过虚拟dom递归的创建dom并挂载。

编译器和渲染器都是vue的核心组成部分,它们互相配合,形成一个有机整体,从而进一步提升框架性能。

目录
相关文章
|
19天前
|
存储 JavaScript 前端开发
vue3的脚手架模板你真的了解吗?里面有很多值得我们学习的地方!
【10月更文挑战第21天】 vue3的脚手架模板你真的了解吗?里面有很多值得我们学习的地方!
vue3的脚手架模板你真的了解吗?里面有很多值得我们学习的地方!
|
16天前
|
JavaScript 前端开发 开发者
Vue 3中的Proxy
【10月更文挑战第23天】Vue 3中的`Proxy`为响应式系统带来了更强大、更灵活的功能,解决了Vue 2中响应式系统的一些局限性,同时在性能方面也有一定的提升,为开发者提供了更好的开发体验和性能保障。
37 7
|
17天前
|
前端开发 数据库
芋道框架审批流如何实现(Cloud+Vue3)
芋道框架审批流如何实现(Cloud+Vue3)
39 3
|
16天前
|
JavaScript 数据管理 Java
在 Vue 3 中使用 Proxy 实现数据双向绑定的性能如何?
【10月更文挑战第23天】Vue 3中使用Proxy实现数据双向绑定在多个方面都带来了性能的提升,从更高效的响应式追踪、更好的初始化性能、对数组操作的优化到更优的内存管理等,使得Vue 3在处理复杂的应用场景和大量数据时能够更加高效和稳定地运行。
36 1
|
16天前
|
JavaScript 开发者
在 Vue 3 中使用 Proxy 实现数据的双向绑定
【10月更文挑战第23天】Vue 3利用 `Proxy` 实现了数据的双向绑定,无论是使用内置的指令如 `v-model`,还是通过自定义事件或自定义指令,都能够方便地实现数据与视图之间的双向交互,满足不同场景下的开发需求。
37 1
|
18天前
|
前端开发 JavaScript
简记 Vue3(一)—— setup、ref、reactive、toRefs、toRef
简记 Vue3(一)—— setup、ref、reactive、toRefs、toRef
|
19天前
Vue3 项目的 setup 函数
【10月更文挑战第23天】setup` 函数是 Vue3 中非常重要的一个概念,掌握它的使用方法对于开发高效、灵活的 Vue3 组件至关重要。通过不断的实践和探索,你将能够更好地利用 `setup` 函数来构建优秀的 Vue3 项目。
|
22天前
|
JavaScript API
vue3知识点:ref函数
vue3知识点:ref函数
30 2
|
22天前
|
API
vue3知识点:reactive函数
vue3知识点:reactive函数
25 1
|
22天前
|
JavaScript 前端开发 API
vue3知识点:Vue3.0中的响应式原理和 vue2.x的响应式
vue3知识点:Vue3.0中的响应式原理和 vue2.x的响应式
24 0