自学内容网 自学内容网

【Vue3】ToRef 和 ToRefs

背景

随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗的日子。本文内容并非完全原创,大多是参考其他文章资料整理所得,感谢每位技术人的开源精神。

简介

本文介绍 Vue3 中 ToRefToRefs 的用法。

toReftoRefs 用于将 reactive 定义的响应式数据对象中的属性转换成 ref 定义,既保留了属性的响应式行为,也保留了引用,即更新 ref 定义的响应式数据会同步更新其对应的 reactive 响应式数据对象中的原属性。其中 toRef 指定转换单个属性,toRefs 可以配合 JavaScript 解构赋值转换多个属性。

开发环境

分类名称版本
操作系统WindowsWindows 11
IDEVisual Studio Code1.91.1

开发步骤及源码

【Vue3】响应式数据 基础上修改 Vue 根组件 App.vue 代码。

<!-- 组件结构 -->
<template>
    <div class="person">
        <h3>姓名:{{ name }}</h3>
        <h3>Name:{{ nameX }}</h3>
        <h3>生日:{{ birth.getFullYear() + '-' + (birth.getMonth() + 1) + "-" + birth.getDate() }}</h3>
        <button @click="showContact">查看联系方式</button>
        <button @click="changeName">修改名字</button>
    </div>
</template>

<script setup lang="ts" name="App">
import { reactive, toRef, toRefs } from 'vue'

let person = reactive({
    name: '哈利·波特',
    birth: new Date('1980-07-31'),
    contact: '霍格沃茨魔法学校格兰芬多学院'
})

let { name, birth } = toRefs(person)
let nameX = toRef(person, 'name')

// 方法定义
function showContact() {
    alert(person.contact)
}

function changeName() {
    nameX.value = 'Harry Potter'
}
</script>

<!-- 组件样式 -->
<style lang="scss">
.person {
    background-color: cadetblue;
    border-radius: 5px;
    color: white;
    padding: 20px;
    
    button {
        background-color: gold;
        border-radius: 5px;
        padding: 5px 10px;
        margin-right: 10px;
    }
}
</style>

原文地址:https://blog.csdn.net/Silent_Paladin/article/details/140572956

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!