美文网首页
vue.js设计与实现 笔记

vue.js设计与实现 笔记

作者: 林智_lz | 来源:发表于2023-02-19 21:17 被阅读0次

1权衡的艺术

1.jq命令式,vue声明式

虚拟dom和真实dom页面性能与页面大小、变更部分的大小都有关系,除此之外,与创建页面还是更新页面也有关系,选择哪种更新策略,需要我们结合心智负担、可维护性等因素综合考虑。虚拟 DOM 更优。虚拟dom就是JavaScript对象,优点:跨端

2.渲染器和编译器

渲染器的作用是,把虚拟 DOM 对象渲染为真实 DOM 元素。它的工作原理是,递归地遍历虚拟 DOM 对象,并调用原生 DOM API 来完成真实 DOM 的创建。渲染器的精髓在于后续的更新,它会通过 Diff 算法找出变更点,并且只会更新需要更新的内容,Vue.js 的模板会被一个叫作编译器的程序编译为渲染函数,最后,编译器、渲染器都是 Vue.js 的核心组成部分,它们共同构成一个有机的整体,不同模块之间互相配合,进一步提升框架性能。

2响应系统

3.副作用函数与effect

effect函数:响应地跟踪它的依赖关系,并在依赖关系发生变化时重新运行它 

https://juejin.cn/post/7090805099118723108   计算属性( effect响应式文章)

副作用函数指的是会产生副作用的函数,effect 函数的执行会直接或间接影响其他函数的执行,这时我们说 effect 函数产生了副作用。副作用很容易产生,例如一个函数修改了全局变量,这其实也是一个副作用,如下面的代码所示:

副作用

4.响应式

当读取操作发生时,将副作用函数收集到“桶”中

当设置操作发生时,从“桶”中取出副作用函数并执行

如何才能拦截一个对象属性的读取和设置操作。在 ES2015 之前,只能通过 Object.defineProperty 函数实现,这也是 Vue.js 2 所采用的方式。在 ES2015+ 中,我们可以使用代理对象 Proxy 来实现,这也是 Vue.js 3 所采用的方式。

5.响应系统

Vue.js 3 的响应式数据是基于 Proxy 实现的,Proxy 可以为其他对象创建一个代理对象。所谓代理,指的是对一个对象基本语义的代理。它允许我们拦截并重新定义对一个对象的基本操作。在实现代理的过程中,我们遇到了访问器属性的 this 指向问题,这需要使用 Reflect.* 方法并指定正确的 receiver 来解决。

6.原始值的响应式方案

Proxy 的代理目标必须是非原始值,所以引入 ref 的概念,为用户创建一个响应对象,定义set get,及value。

toRef 以及 toRefs 这两个函数。它们本质上是对响应式数据做了一层包装,或者叫作“访问代理”。

3.渲染器

...

相关文章

  • 《redis设计与实现》 读书笔记

    《redis设计与实现》 读书笔记 《redis设计与实现》 作者:黄健宏 一、前言 什么是redis:Redis...

  • 阅读 《vue.js 设计与实现》

    这本书正好适合现在的我阅读,因此每天抽时间倍加感恩的学习,这里简要的记录一下收获。 响应式原理初探 我们可以对 d...

  • vue.js 设计与实现(二)

    第二章,vue设计与实现总结: tree-shaking机制:可以处理因框架因警告信息过大,而影响框架的体积,利用...

  • vue.js 设计与实现(三)

    vue框架是一个声明式框架,我们可以用模板的方式声明UI,也可以使用虚拟DOM来描述UI,虚拟DOM比模板更灵活,...

  • vue.js 设计与实现(一)

    vue框架设计的缘由:1、在框架的设计中,更希望采用声明式代码提供给用户,声明式代码更注重结果,用户只需书写框架规...

  • vue.js源码学习笔记

    参考:vue.js官网Vue.js 源码学习笔记Vue2.0源代码阅读 文件结构梳理 整体目录 源代码实现目录 模...

  • 阅读 《vue.js 设计与实现》4.4

    存在问题 - 分支切换 有时候,虽然effect读取了data的某个属性,但实际上,这个读取是没有副作用的。例如,...

  • 阅读 《vue.js 设计与实现》4.5

    嵌套的 effect 与 effect 栈 原先用全局变量 activeEffect 来存储副作用, 内层的 ef...

  • 马克飞象

    马克飞象是一款专为印象笔记(Evernote)打造的Markdown编辑器,通过精心的设计与技术实现,配合印象笔记...

  • 欢迎使用Markdown

    马克飞象是一款专为印象笔记(Evernote)打造的Markdown编辑器,通过精心的设计与技术实现,配合印象笔记...

网友评论

      本文标题:vue.js设计与实现 笔记

      本文链接:https://www.haomeiwen.com/subject/yeqwkdtx.html