vue3中ref和reactive的区别

news2025/1/18 21:13:21

ref

接受一个内部值并返回一个响应式且可变的 ref 对象,有一个 .value 属性,可以通过其读取/修改对象的值。

const active = ref(false)

console.log(active.value) // false

active.value = true

console.log(active.value) // true

为ref值指定泛型参数覆盖默认推断类型:

const active = ref<boolean> (false)

当值的类型不确定时,将ref 转换为 Ref<T>

const data = ref(params) as Ref<T>

reactive

创建一个响应式对象,与ref不同的是,reactive 接受的参数是一个对象,可以使用toRef(infoObj)为对象中的每一个属性创建一个ref, 它可以保持对原属性的响应式链接。

const infoObj = reactive({
name:'Alex',
age: '22'
})

console.log('infoObj', infoObj)

// 第二个参数代表对name属性创建ref; 对所有属性创建ref 使用toRefs(),结果对象的每个 property 都是指向原始对象相应 property 的 ref。
const infoName = toRef(infoObj, 'name')

infoName.value = 'Mary'

console.log('name', infoName.value, infoObj.name) // name Mary Mary

ref 和 reactive:

相同:创建一个响应式对象。

不同:

  • reactive 接受入参必须是对象形式,而 ref 可以是对象形式,也可以是一个单值。
  • 读取/赋值不一样,ref 必须从.value 属性中读取值
  • ref存在异步问题、

 

toRef 和 toRefs :

toRefs 只会为源对象中包含的 property 生成 ref, 将对象转换为普通对象,且不丢失对源对象的响应式链接,即修改源对象属性值,生成的新的普通对象的对应属性值(ref)也会修改,反之亦然。

toRef 为特定的 property 创建 ref, 同样也会保持响应式链接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/409057.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue中的$set

项目场景&#xff1a; 例如&#xff1a;在我写前端项目的时候&#xff0c;后端给我们的一个json对象&#xff0c;并且我已经渲染在页面上了。但是由于我自己的需求&#xff0c;想往返回的对象里面添加一个字段&#xff0c;后来才意识到不是响应式的。如果我们要让这个新字段是…

【博主推荐】html好看的个人主页(附源码)

个人主页介绍【博主推荐】html好看的个人主页1.背景个人主页效果2.背景个人主页代码3.简洁个人主页效果4.简洁个人主页代码5.卡片个人主页效果6.卡片个人主页代码7.星空个人主页效果8.星空个人主页代码源码下载【博主推荐】html好看的个人主页 附带四种风格个人主页 背景个人主…

牛客前端刷题(五)—— CSS相关概念

还在担心面试不通过吗?给大家推荐一个超级好用的刷面试题神器:牛客网,里面涵盖了各个领域的面试题库,还有大厂真题哦! 赶快悄悄的努力起来吧,不苒在这里衷心祝愿各位大佬都能顺利通过面试。 面试专栏分享,感觉有用的小伙伴可以点个订阅,不定时更新相关面试题:面试专栏…

解决vue3+vite+TS 中使用element-plus按需引入 ElLoading、ElMessage 样式失效

ElMessage 样式失效 其实他不是失效了&#xff0c;只是加载到我们的 可以看到下面使用的方式和效果图&#xff0c;vue3的element-plus遇到的问题&#xff0c;因为要测试一下&#xff0c;所以点的频率比较大&#xff0c;但可以明显的看到ElMessage样式显示在你浏览器的下面 i…

echarts之markPoint(在途中任意位置增加标注及自动获取最大最小值处理)

echarts之markPoint(在途中任意位置增加标注及自动获取最大最小值处理) 前言 记录自己工作中的一点小心得&#xff0c;希望可以帮助有同样需求的朋友。 1.使用场景 之前我工作中有需要在图标中添加特殊标识的&#xff0c;我是费劲用散点图进行添加&#xff0c;十分麻烦。又比…

利用Vite或者webpack创建Vue项目,并启动Vue项目

文章目录背景环境准备准备Node.js和npm即可Vite打包webpack打包总结背景 大家好&#xff0c;我是杜晓帅~&#xff0c;一名Java开发程序员&#xff1b;最近想总结一下前端开发的一些东西&#xff0c;包括项目的打包和如何将后端处理的数据在前端进行一个展示&#xff0c;相信大家…

React 重新渲染指南

前言 老早就想写一篇关于React渲染的文章&#xff0c;这两天看到一篇比较不错英文的文章&#xff0c;翻译一下(主要是谷歌翻译&#xff0c;手动狗头)&#xff0c;文章底部会附上原文链接。 介绍 React 重新渲染的综合指南。该指南解释了什么是重新渲染&#xff0c;什么是必要…

前端后端的爱恨情仇

全文目录一、API爆炸的时代1.背景介绍2.问题引出3.解决方案二、核心功能1.API文档2.API调试3.Mock 数据4.自动化测试5. 在线调试三、其他功能1.代码生成2.数据导入/导出四、惊喜功能五、总结一、API爆炸的时代 随着最近行业的移动化、物联网化、数字化转型、微服务等多种概念的…

vue的脚手架安装及安装失败问题解决

vue的脚手架安装及安装失败问题解决 提示&#xff1a;本文是较为详细的vue脚手架安装教程及其问题解决&#xff0c;若需要快速使用的宝们请按照文章目录快速查找并使用相关代码 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文…

Node.js | 你不知道的 express 路由使用技巧

🖥️ NodeJS专栏:Node.js从入门到精通 🖥️ 博主的前端之路(源创征文一等奖作品):前端之行,任重道远(来自大三学长的万字自述) 🖥️ TypeScript知识总结:TypeScript 学习笔记(十万字超详细知识点总结) 🧑‍💼 个人简介:大三学生,一个不甘平庸的平凡人🍬…

前端发送axios请求报错Request failed with status code 500解决方案

1.报错如下 2.因为后端的api是自己使用nodeexpress搭建的后台&#xff0c;然后要求请求头的参数格式为application/x-www-form-urlencoded的参数格式 打开报错请求 发现自己的请求头参数格式没有错误&#xff0c;jwt的身份验证也通过了&#xff0c;然后使用post测试接口&#x…

JavaScript之Ajax(一篇入门Ajax就够了)

一、概念 1.什么是Ajax Ajax&#xff08;Asynchronous Javascript And XML&#xff09;&#xff0c;即是异步的JavaScript和XML&#xff0c;Ajax其实就是浏览器与服务器之间的一种异步通信方式 异步的JavaScript 它可以异步地向服务器发送请求&#xff0c;在等待响应的过程…

vue3 + vite中开发环境和生产环境全局变量配置

目录一、开发环境和生产环境二、配置环境变量三、使用全局变量一、开发环境和生产环境 开发环境&#xff1a;也就是编码时运行的环境&#xff0c;即我们使用npm run dev或者npm run serve运行项目到本地时&#xff0c;项目处于的环境。 生产环境&#xff1a;项目部署到服务器…

07. vue3+vite+qiankun搭建微应用前端框架,并接入vue3微应用

目录前言主应用微应用部署前言 因为业务系统接入的需要&#xff0c;决定将一个vue3vitets的主应用系统&#xff0c;改造成基于qiankun的微应用架构。此文记录了改造的过程及vue3微应用接入的种种问题。 网上有很多关于微应用改造的案例&#xff0c;但很多都没写部署之后什么情…

web前端文件上传可选择的4种方式

在web前端开发中&#xff0c;文件上传属于很常见的功能&#xff0c;不论是图片、还是文档等等资源&#xff0c;或多或少会有上传的需求。一般都是从添加文件开始&#xff0c;然后读取文件信息&#xff0c;再通过一定的方式将文件上传到服务器上&#xff0c;以供后续展示或下载使…

WEB核心【记录网站登录人数,记录用户名案例】Cookie技术实现

目录 &#x1f482; 个人主页: 爱吃豆的土豆&#x1f91f; 版权: 本文由【爱吃豆的土豆】原创、在CSDN首发、需要转载请联系博主&#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 &#x1f3c6;人必有所执&#xff0c;方能有所成&#xff01; &…

npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree

当我们拿到一个前端项目的时候&#xff0c;想要把它运行起来&#xff0c;首先是要给它安装依赖&#xff0c;即cd到当前项目根目录下去执行npm install命令&#xff0c;然后有一定几率在终端你会遇到这样的报错&#xff1a; npm ERR! code ERESOLVEnpm ERR! ERESOLVE unable to…

HTML基础————table标签

1.什么是table&#xff1f; table是html中的表格&#xff0c;由tr、td、th元素组成。 tr 元素定义表格行&#xff0c;th 元素定义表头&#xff0c;td 元素定义表格单元 2.可选的属性 属性描述border定义表格的边框cellpadding单元格内内容与单元格边的间距cellspacing单元格…

Vite配置环境变量

Vite配置代码环境变量和 Vue2 的配置差不多&#xff0c;都是依靠 .env 文件夹来实现 详情可到 Vite 官网的环境配置里了解&#xff1a;环境变量和模式 {#env-variables-and-modes} | Vite中文网 一、在src同级下创建 .env.production 生产模式和 .env.development 开发模式两…

基于 vue3 element-plus 的暗黑模式

前言 element-plus2.2.0 已经开始支持暗黑模式了 通过在html标签上添加一个名为 dark 的类来启用 基于 vue3 & element-plus 的项目现在可以方便的添加暗黑模式 一、基本使用 因为是通过在html标签上添加 dark 类&#xff0c;可以自行实现切换 但为了方便切换以及进一…