Vue3的ref和reactive

发布时间:2024年01月22日

目录

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

文章来源:https://blog.csdn.net/m0_56713342/article/details/135757435
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。