当前位置: 首页 > news >正文

vue3 的 ref、 toRef 、 toRefs

1、ref: 对原始数据进行拷贝。当修改 ref 响应式数据的时候,模版中引用 ref 响应式数据的视图处会发生改变,但原始数据不会发生改变

<template><div>{{refA}}</div>
</template><script lang="ts" setup>
import { ref } from 'vue'let a = 1
const refA = ref(a) // 对原始数据 a 进行拷贝refA.value = 12 // 此时模版视图引用 refA 的地方进行更新
console.log(a) // 此时原始数据 a 的值还是 1
</script>

2、toRef: 用于将对象中的某个属性转换成响应式数据。当修改 toRef 响应式数据的时候,原始数据会发生变化,但是模版中引用 toRef 响应式数据的视图处不会发生改变

<template><div>{{toRefName}}</div>
</template><script lang="ts" setup>
import { toRef } from 'vue'let obj = { name: 'bobo', age: 18 }
const toRefName = toRef(obj, 'name') // 将原始数据 obj 的 name 属性转换为响应式数据toRefName.value = 'lili' // 此时模版视图引用 toRefName 的地方不更新
console.log(toRefName.value, obj.name) // 都变成 'lili'
</script>

3、toRefs: 用于将整个对象转换成响应式数据。当修改 toRefs 响应式数据的时候,原始数据会发生变化,但是模版中引用 toRefs 响应式数据的视图处不会发生变化

<template><div>{{toRefsObj.name}} ---- {{toRefsObj.age}}</div>
</template><script lang="ts" setup>
import { toRefs } from 'vue'let obj = { name: 'bobo', age: 18 }
const toRefsObj = toRefs(obj) // 将原始数据 obj 所有属性转换为响应式数据toRefsObj.name.value = 'lili' // 此时模版视图引用 toRefsObj 属性的地方不更新
toRefsObj.age.value = 16 // 此时模版视图引用 toRefsObj 属性的地方不更新
console.log(toRefsObj.name.value, obj.name) // 都变成 'lili'
console.log(toRefsObj.age.value, obj.age) // 都变成 16
</script>
http://www.lryc.cn/news/158627.html

相关文章:

  • WebRTC中 setup:actpass、active、passive
  • ModuleNotFoundError: No module named ‘lavis‘解决方案
  • 双指针的问题解法以及常见的leetcode例题。
  • python容器模块Collections
  • 排序算法学习记录-快速排序
  • 安装windows版本的ros2 humble的时候,最后报错
  • Nginx 学习(十)高可用中间件的配置与实现
  • [刷题记录]牛客面试笔刷TOP101
  • 降水预报之双重惩罚
  • 一条SQL语句的执行过程(附一次两段式提交)
  • Python基础知识详解:数据类型、对象结构、运算符完整分析
  • 基于Streamlit的应用如何通过streamlit-authenticator组件实现用户验证与隔离
  • [虚幻引擎插件介绍] DTGlobalEvent 蓝图全局事件, Actor, UMG 相互回调,自由回调通知事件函数,支持自定义参数。
  • 2023数学建模国赛选题建议及BC题思路
  • vue3:4、组合式API-setup选项
  • 【C刷题训练营】第三讲(c语言入门训练)
  • 简述视频智能分析EasyCVR视频汇聚平台如何通过“AI+视频融合”技术规避八大特殊作业风险
  • 2023年9月NPDP产品经理国际认证报名,找弘博创新
  • 【MySQL】MySQL的安装,登录,配置和相关命令
  • 攻防世界-WEB-php_rce
  • WRFDA资料同化实践技术
  • C++11新特性② | 左值、左值引用、右值与右值引用
  • Python Opencv实践 - Harris角点检测
  • el-upload上传图片到七牛云或阿里云
  • Web jQuery—选择器、样式和效果
  • Java和Kotlin的Field在继承中的不同表现
  • MySQL 子查询
  • Ubuntu离线或在线安装CMake
  • 后端面试话术集锦第 十七 篇:MySQL面试话术
  • < 文件资源管理器 > 和 < 此电脑 > 有什么区别?