Vue数据响应式原理是如何实现自动追踪依赖和高效更新视图的?

2026-04-01 16:101阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1575个文字,预计阅读时间需要7分钟。

Vue数据响应式原理是如何实现自动追踪依赖和高效更新视图的?

在讨论数据响应式之前,我们首先要解决一个非常重要的问题:Vue中到底对data做了什么?先从getter和setter说起,我们用那个让其他们来对虚拟属性进行读写操作。例如:

javascriptlet obj0={ // ...};

在说数据响应式之前,我们要解决一个很重要的问题,那就是Vue到底对data做了什么?先从getter和setter说起,我们用那个他们来对虚拟的属性进行读写。

getter和setter

有如下代码

let obj0 = { 姓: "高", 名: "圆圆", age: 18 }; // 需求一,得到姓名 let obj1 = { 姓: "高", 名: "圆圆", 姓名() { return this.姓 + this.名; }, age: 18 }; console.log("需求一:" + obj1.姓名());//高圆圆

此时我们log出来的结果是高圆圆,这个大家都能看懂,但是姓名后面的括号能删掉吗?不能,因为它是函数,那么我们怎么去掉括号呢?下面就有我们的需求二

// 需求二,姓名不要括号也能得出值 let obj2 = { 姓: "高", 名: "圆圆", get 姓名() { return this.姓 + this.名; }, age: 18 }; console.log("需求二:" + obj2.姓名);//高圆圆

此时我们使用getter ,不加括号也能得出值。

阅读全文

本文共计1575个文字,预计阅读时间需要7分钟。

Vue数据响应式原理是如何实现自动追踪依赖和高效更新视图的?

在讨论数据响应式之前,我们首先要解决一个非常重要的问题:Vue中到底对data做了什么?先从getter和setter说起,我们用那个让其他们来对虚拟属性进行读写操作。例如:

javascriptlet obj0={ // ...};

在说数据响应式之前,我们要解决一个很重要的问题,那就是Vue到底对data做了什么?先从getter和setter说起,我们用那个他们来对虚拟的属性进行读写。

getter和setter

有如下代码

let obj0 = { 姓: "高", 名: "圆圆", age: 18 }; // 需求一,得到姓名 let obj1 = { 姓: "高", 名: "圆圆", 姓名() { return this.姓 + this.名; }, age: 18 }; console.log("需求一:" + obj1.姓名());//高圆圆

此时我们log出来的结果是高圆圆,这个大家都能看懂,但是姓名后面的括号能删掉吗?不能,因为它是函数,那么我们怎么去掉括号呢?下面就有我们的需求二

// 需求二,姓名不要括号也能得出值 let obj2 = { 姓: "高", 名: "圆圆", get 姓名() { return this.姓 + this.名; }, age: 18 }; console.log("需求二:" + obj2.姓名);//高圆圆

此时我们使用getter ,不加括号也能得出值。

阅读全文