Vue3 中使用 toRefs的方法

首先画出模板

XML 复制代码
<template>
    <div class="person">
        <h2>姓名:{{ person.name }}</h2>
        <h2>年龄:{{ person.age }}</h2>
        <button @click="showTel">查看联系方式</button>
        <button @click="changeName">修改名字</button>
        <button @click="chanegAge">修改年龄</button>
    </div>
    
</template>

定义响应式对象

XML 复制代码
<script lang="ts" setup name="PersonToRefs">
import { ref, reactive,toRefs } from 'vue'

const person = reactive({
    name: "zhangsan",
    age: 18,
    tel :123456789
})

// 现在将数据进行解析出来
// const {name,age} = person //此时的name,age并不是响应式的
const {name,age} = toRefs(person) //此时的name,age是响应式的,但是其值是响应式的,但是其值是结构成ref(响应式)对象的数据


function changeName(){
    person.name = person.name + '~'
    console.log("name",name.value);
    console.log("person.name",person.name);
}

function chanegAge(){
    person.age = person.age + 1
    console.log("age",age.value);
    console.log("person.age",person.age);
}

function showTel(){
    alert(person.tel)
}

</script>

样式:

XML 复制代码
<style scoped>
.person {
    background-color: skyblue;
    box-shadow: 0 0 10px;
    border-radius: 10px;
    padding: 20px
}
</style>

小结:

当我们使用,reactive定义响应式对象的时候,使用let{name,age} = person 解析对象后,

其name,age并不是响应式的,因此我们需要使用,toRefs属性,将其转化为响应式的

并且,使用toRefs转化后的name,age其变成了,与person相关联的Ref响应式数据

当只需要某个对象的单个属性的时候,可以使用toRef

XML 复制代码
const roRefName = toRef(person,'name')

console.log(roRefName.value);
相关推荐
计算机毕设-小月哥2 分钟前
【Python Django + Vue】酒店在线预订系统:用技术说话!
开发语言·vue.js·后端·python·django·计算机毕设·计算机毕业设计
云小遥33 分钟前
Cornerstone3D Tools对影像进行交互(中篇)-注释类工具使用
前端·vue.js
前端斌少42 分钟前
强大灵活的文件上传库:FilePond 详解
前端·vue·react
OEC小胖胖1 小时前
使用CSS和HTML实现3D图片环绕效果
前端·css·3d·html·web
ikgade1 小时前
Leaflet 接入天地图服务
javascript·html·leaflet·天地图
wy3136228211 小时前
android——Groovy gralde 脚本迁移到DSL
android·前端·javascript
方应杭2 小时前
Cursor 成功让我卸载了 VSCode
javascript
The_tuber_sadness2 小时前
【Flutter】- go_router路由
javascript·flutter·golang
安冬的码畜日常2 小时前
【玩转 JS 函数式编程_014】4.1 JavaScript 纯函数的相关概念(下):纯函数的优势
开发语言·javascript·ecmascript·函数式编程·js·functional·原生js
大G哥2 小时前
前端Socket互动小游戏开发体验分享
前端·状态模式