Vue3的ref和reactive

本文介绍了Vue3中的ref和reactive两种创建响应式数据的方法,以及它们在操作DOM上的应用。ref支持基本和引用数据类型,而reactive仅限于引用类型。同时,对比了两者获取和修改数据的区别。
摘要由CSDN通过智能技术生成

目录

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响应式数据的时候,不需要.value


import { 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

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值