toRef 与 toRefs
作用
将一个响应式对象中的每一个属性, 转换为ref
对象
区别
toRef
与toRefs
功能一致, 但toRefs
可以批量转换
语法
- 代码示例
vue
<template>
<div class="person">
<h2>姓名:{{ person.name }}</h2>
<h2>年龄:{{ person.age }}</h2>
<h2>性别:{{ person.gender }}</h2>
<button @click="changeName">修改名字</button>
<button @click="changeAge">修改年龄</button>
<button @click="changeGender">修改性别</button>
</div>
</template>
<script lang="ts" setup name="Person">
import { reactive, toRefs, toRef } from 'vue'
// 数据
let person = reactive({ name: '张三', age: 18, gender: '男' })
// 通过 toRefs 将 person 对象中的 n个 属性批量取出, 且依然保持响应式的能力
let { name, gender } = toRefs(person)
// 通过 toRef 将 person 对象中的 gender 属性取出, 且依然保持响应式的能力
let age = toRef(person, 'age')
// 方法
function changeName(){
name.value += '~'
}
function changeAge(){
age.value += 1
}
function changeGender(){
gender.value = '女'
}
</script>