目录
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>
?
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>
?
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>
相同点 : 都可以创建响应式数据
不同点 : reactive只支持引用数据类型,ref支持基本和引用数据类型
ref通过.value获取数据,reactive不需要.value
ref创建响应式引用数据类型低层依赖reactive