0

0

Vue3中 ref VS reactive,浅谈它们间有何区别?

青灯夜游

青灯夜游

发布时间:2021-10-25 10:06:18

|

5864人浏览过

|

来源于learnku

转载

本篇文章带大家了解一下vue.js 3 中 ref 和 reactive,介绍一下ref和reactive中的区别,希望对大家有所帮助!

Vue3中 ref VS reactive,浅谈它们间有何区别?

关键点

reactive() 只接受对象作为参数, 不支持 JS 原始类型 (String, Boolean,Number,BigInt,Symbol,null,undefined)。【相关推荐:vue.js教程

ref() 会在后台调用 reactive()

立即学习前端免费学习笔记(深入)”;

reactive() 支持对象,而 ref() 内部调用 reactive(),故两个方法都支持对象

但是, ref() 有一个 .value 属性可以用来重新赋值,而 reactive() 不可重新赋值(会丢失响应性)

使用场景

ref()

当数值类型是 JS 原始类型时使用 (例如 'string', true, 23)

当赋值对象,且后续需要被重新赋值时 (例如一个数组 - 更多请见这里)

reactive()

MCP Market
MCP Market

MCP Servers集合平台,帮你找到最好的MCP服务器

下载

当数值类型是对象,且不需要重新赋值时使用,ref() 内部也是调用 reactive(),无需徒增开销

总结

ref() 似乎是正确的选择,因为它支持全部的对象类型,而且可以通过 .value 重新赋值。 ref() 很好,但是当你熟悉 API 之后,就知道 reactive() 开销更小,可能发现这个更能满足需求。

ref() 案例

通过使用 ref() 来初始化,但是 ref() 对需要重新赋值的对象比较友好,例如数组。

setup() {
    const blogPosts = ref([]);
    return { blogPosts };
}
getBlogPosts() {
    this.blogPosts.value = await fetchBlogPosts();
}

上面采用 reactive() 的话,需要属性赋值取代对象赋值。

setup() {
    const blog = reactive({ posts: [] });
    return { blog };
}
getBlogPosts() {
    this.blog.posts = await fetchBlogPosts();
}

reactive() 案例

reactive() 适合对一组归属相同的数据初始化:

const person = reactive({
  name: 'Albert',
  age: 30,
  isNinja: true,
});

上面的代码比下面的更符合逻辑

const name = ref('Albert');
const age = ref(30);
const isNinja = ref(true);

更多编程相关知识,请访问:编程视频!!

相关文章

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

1

2026.01.22

html编辑相关教程合集
html编辑相关教程合集

本专题整合了html编辑相关教程合集,阅读专题下面的文章了解更多详细内容。

40

2026.01.21

三角洲入口地址合集
三角洲入口地址合集

本专题整合了三角洲入口地址合集,阅读专题下面的文章了解更多详细内容。

20

2026.01.21

AO3中文版入口地址大全
AO3中文版入口地址大全

本专题整合了AO3中文版入口地址大全,阅读专题下面的的文章了解更多详细内容。

281

2026.01.21

妖精漫画入口地址合集
妖精漫画入口地址合集

本专题整合了妖精漫画入口地址合集,阅读专题下面的文章了解更多详细内容。

72

2026.01.21

java版本选择建议
java版本选择建议

本专题整合了java版本相关合集,阅读专题下面的文章了解更多详细内容。

3

2026.01.21

Java编译相关教程合集
Java编译相关教程合集

本专题整合了Java编译相关教程,阅读专题下面的文章了解更多详细内容。

14

2026.01.21

C++多线程相关合集
C++多线程相关合集

本专题整合了C++多线程相关教程,阅读专题下面的的文章了解更多详细内容。

6

2026.01.21

无人机驾驶证报考 uom民用无人机综合管理平台官网
无人机驾驶证报考 uom民用无人机综合管理平台官网

无人机驾驶证(CAAC执照)报考需年满16周岁,初中以上学历,身体健康(矫正视力1.0以上,无严重疾病),且无犯罪记录。个人需通过民航局授权的训练机构报名,经理论(法规、原理)、模拟飞行、实操(GPS/姿态模式)及地面站训练后考试合格,通常15-25天拿证。

33

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue3.x 工具篇--十天技能课堂
Vue3.x 工具篇--十天技能课堂

共26课时 | 1.4万人学习

Vue3.x 核心篇--十天技能课堂
Vue3.x 核心篇--十天技能课堂

共30课时 | 1.5万人学习

Vue3.x新特性篇--十天基础课堂
Vue3.x新特性篇--十天基础课堂

共20课时 | 1.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号