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

Vue3的ref和reactive

目录

1、ref的基本使用

2、reactive的基本使用

3、ref操作dom

4、ref与reactive的异同


1、ref的基本使用

ref创建数据可以是基本类型也可以是引用类型

ref函数创建响应式数据,返回值是一个对象

模版中使用ref数据,省略.value,js代码中不能省略

获取ref创建数据的值要加上.value

<script setup>
// ref函数创建响应式数据,返回值是一个对象
// 模版中使用ref数据,省略.value,js代码中不能省略
import { ref } from 'vue'
const obj =ref({name: '北京',desc: '政治文化中心'
})
// 修改城市的方法
const change = () => {obj.value.name = '上海'
}
</script><template><div>Hello Vue3</div><p>城市 {{ obj.name }}</p><button @click="change">修改城市</button>
</template><style scoped></style>

2、reactive的基本使用

 

reactive创建响应式

reactive函数创建响应式数据,只支持引用数据类型

使用reactive响应式数据的时候,不需要.value

<script setup>
// reactive函数创建响应式数据,只支持引用数据类型
// 使用reactive响应式数据的时候,不需要.valueimport { reactive } from 'vue'
const user = reactive({name: 'admin',pwd: '123456'
})
const changeUserName = () => {user.name = 'admin666' 
}
</script><template><div>Hello Vue3</div><p>姓名 {{ user.name }}</p><button @click="changeUserName">修改姓名</button>
</template><style scoped></style>

 

3、ref操作dom

1、创建ref对象,将该对象作为ref的值

2、想获取谁,就再谁的标签上添加ref,其ref=‘ref对象’

 

<script setup >import {ref} from 'vue'
// 创建ref对象
const eleref=ref()
const changeBackgroundColor=()=>{
eleref.value.style.backgroundColor='pink'
}</script><template>
<div>hello,world</div>
<!-- ref='ref对象' -->
<p ref="eleref">pppp</p>
<button @click="changeBackgroundColor"> 改变背景色</button></template><style scoped></style>

4、ref与reactive的异同

  1. 相同点 : 都可以创建响应式数据

  2. 不同点 : reactive只支持引用数据类型,ref支持基本和引用数据类型

  • ref通过.value获取数据,reactive不需要.value

  • ref创建响应式引用数据类型低层依赖reactive

http://www.lryc.cn/news/286292.html

相关文章:

  • Flink编程——风险欺诈检测
  • Day37 贪心算法 part06 738. 单调递增的数字 968. 监控二叉树
  • SpringBoot Redis入门(四)——Redis单机、哨兵、集群模式
  • 获取数组中的第一个、第二个、第三个......元素
  • 前端面试题(持续更新~~)
  • ubuntu下无法访问和ping通github的一种解决方法
  • C#,入门教程(28)——文件夹(目录)、文件读(Read)与写(Write)的基础知识
  • 开源大数据集群部署(六)Keytab文件生成
  • 图神经网络X项目|基于图神经网络的电商行为的预测(5%)
  • 仰暮计划|“说是操场,那就是个土坡,我们在那儿上边种种树啊,拔拔草,有的时候还会有同学来喂喂羊啥的,这都是我们的娱乐”
  • Java【代码 16】将word、excel文件转换为pdf格式和将pdf文档转换为image格式工具类分享
  • 8亿日活的抖音,用“自我设限”谋求长期主义
  • Final Cut Pro v10.7.1中文版 专业级视频剪辑软件 兼容M
  • Chrome扩展之通信
  • Appium 环境配置
  • 前端JavaScript篇之Javscript数组的常用方法有哪些?JavaScript判断数组的方式有哪些?
  • 【Spring Boot 3】【Redis】基本数据类型操作
  • [MySQL]关于表的增删改查
  • 编译和链接(翻译环境:预编译+编译+汇编+链接​、运行环境)
  • 洛谷 P1364 医院设置
  • JAVAEE初阶 网络编程(三)
  • Linux 的提示符太长了,帮你精简一下
  • nvm, node.js, npm, yarn 安装配置
  • Springboot之监听器
  • 【02】mapbox js api加载arcgis切片服务
  • Vue四个阶段,八个钩子函数
  • rancher和k8s接口地址,Kubernetes监控体系,cAdvisor和kube-state-metrics 与 metrics-server
  • idea编译打包前端vue项目
  • Unity中URP下的 额外灯 逐像素光 和 逐顶点光
  • 《WebKit 技术内幕》学习之五(2): HTML解释器和DOM 模型