文章 2024-10-31 来自:开发者社区

vue3知识点:Vue3.0中的响应式原理和 vue2.x的响应式

@[toc] 二、常用 Composition API 问题:啥叫“组合式API”? 答案:请看官方文档: https://v3.cn.vuejs.org/guide/composition-api-introduction.html 4.Vue3.0中的响应式原理 vue2.x的响应式 实现原理: 对象类型:通...

vue3知识点:Vue3.0中的响应式原理和 vue2.x的响应式
文章 2024-03-05 来自:开发者社区

Vue3的响应式原理

Vue 3 中的响应式原理是通过使用 ES6 的 Proxy 对象来实现的。在 Vue 3 中,每个组件都有一个响应式代理对象,当组件中的数据发生变化时,代理对象会立即响应并更新视图。 具体来说,当一个组件被创建时,Vue 会为组件的 data 对象创建一个响应式代理对象。这个代理对象可以监听到数据的变化,并在数据变化时更新视图。 当组件的 data 对象发生变化时,代理对象会收到变化通知,...

Vue3的响应式原理
文章 2023-08-21 来自:开发者社区

手写vue3核心源码——响应式原理(Computed篇)

实现computed基本功能先写一个简单的测试, 这里的逻辑是调用computed函数之后我们能够拿到age的值,因为computed底层借助了ref创建计算属性的响应式对象,所以需要通过.value拿到值it("happy path", () => { const user = reactive({ age: 1 }) ...

文章 2023-08-21 来自:开发者社区

手撸vue3核心源码——响应式原理(ProxyRefs)

ProxyRefs初步实现先来看一下单测要实现的功能, 这里我们先实现一下get功能, 我们可以看到这里的user对象里面包裹的有一个ref对象,我们这里取name时要实现不用.value,就可以拿到ref对象的值it("it test ProxyRefs", () => { const user = { name: ref("meng"), ...

文章 2023-08-21 来自:开发者社区

手撸vue3核心源码——响应式原理(isRef与unRef)

isRefisRef和isReactive一样,都是用于检测数据类型,isRef是检测是不是一个ref对象,跟isReactive函数实现起来一样,我们先来写一个单元测试这里要实现的功能是,检测ref对象肯定就通过返回true,检测普通类型数据以及reactive对象都是falseit("it should return a boolean", () => { let ob...

文章 2023-08-21 来自:开发者社区

手撸vue3核心源码——响应式原理(reactive以及effect)

vue3响应式的核心vue3响应式的核心在于reactive创建响应式数据对象, effect(副作用函数)与响应式数据对象进行关联实时监听响应式数据的变化,达到数据的实时更新编辑reactive背景分析在vue3的源码中,摒弃了vue2所使用的Object.defineProperty对数据进行劫持,转而应用es6中新增的Proxy 对数据进行代理对比来看,在vue2中Object.defin....

手撸vue3核心源码——响应式原理(reactive以及effect)
文章 2023-08-21 来自:开发者社区

手撸vue3核心源码——响应式原理(readonly以及stop函数)

readonlyreadonly 顾名思义就是只可读,不可改,对比正常的响应式对象,我们可以得到它们的差异编辑 因为readonly只可读不可改,所以我们对于set改值操作自然可以忽略,并且不需要再收集依赖了,我们依赖收集的目的就是为了在响应式数据发生变化时,触发依赖,达到数据视图实时同步的目的,既然数据不可变,那我们也不需要再收集了,那么我们就可以书写代码了export function re....

手撸vue3核心源码——响应式原理(readonly以及stop函数)
文章 2023-08-21 来自:开发者社区

手撸vue3核心源码——响应式原理(scheduler以及onStop)

编辑schedulerscheduler(调度),我们函数的执行需要调度控制,它就相当于一个开关,来把控是否要执行fn,当我们传入了scheduler时,就不会去执行fn了,我们先来写个单元测试,来把理想的功能写一下编辑这里当我们obj.foo++时会触发effect函数执行,但是我们传入了scheduler,所以fn不会再走了,而是去执行scheduler ,因此dummy = obj.foo....

手撸vue3核心源码——响应式原理(scheduler以及onStop)
文章 2023-08-21 来自:开发者社区

手撸vue3核心源码——响应式原理(isReactive,isReadonly)

isReactive与isReadonlyisReactive和isReadonly最大区别是啥,一个可改,一个不可改 而且reactive需要收集依赖,而readonly不需要,那么我们根据这点来写代码,那么我们判断一下是不是就可以了我们首先需要把之前写的reactive以及readonly代码给优化一下 import { track, trigger } from './effect' ex....

文章 2023-08-21 来自:开发者社区

手撸vue3核心源码——响应式原理(shallowReadonly, isProxy)

shallowReadonlyshallowReadonly也就是只对最外层做readonly,内部如果还要对象属性,不做readonly处理那么我们如果是shallow的话,就不用递归了,借鉴isReaonly写法,我们也传入一个变量用于检验是否是shallow编辑 这是我们写的单测, 最下面两行是实现的功能function createGetter(isReadonly = false, i....

手撸vue3核心源码——响应式原理(shallowReadonly, isProxy)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

阿里巴巴终端技术

阿里巴巴终端技术最新内容汇聚在此,由阿里巴巴终端委员会官方运营。阿里巴巴终端委员会是阿里集团面向前端、客户端的虚拟技术组织。我们的愿景是着眼用户体验前沿、技术创新引领业界,将面向未来,制定技术策略和目标并落地执行,推动终端技术发展,帮助工程师成长,打造顶级的终端体验。同时我们运营着阿里巴巴终端域的官方公众号:阿里巴巴终端技术,欢迎关注。

+关注