Vue3【十】07使用ref创建基本类型的响应式数据以及ref和reactive区别

本文主要是介绍Vue3【十】07使用ref创建基本类型的响应式数据以及ref和reactive区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Vue3【十】07使用ref创建基本类型的响应式数据以及ref和reactive区别

ref 也可以创建对象类型的响应式数据,不过要使用.value
ref 处理对象数据的时候,底层数据还是reactive格式的
reactive 重新分配一个新对象,会失去响应式可以使用Object.assign()来做整体替换,不会丢失响应式
若要使用一个基本类型的响应式数据,必须使用ref
若要使用一个响应式对象成绩不深,ref和reactive都可以
若要使用一个响应式对象,层级比较深,推荐reactive

案例截图

在这里插入图片描述

目录结构

在这里插入图片描述

案例代码

Person.vue

<template><div class="person"><h1>我是 兜率宫 组件</h1><h2>名字:{{ palace.name }}</h2><h2>数量:{{ palace.no }} </h2><button @click="changeName">修改名字</button><button @click="changeNo">修改数量</button><button @click="showAdd">查看信息</button><button @click="changePalace">修改宫殿</button></div><div class="baxian"><h2>八仙都有哪些?</h2><ul><li v-for="item in baxian" :key="item.id">{{ item.name }}</li></ul><button @click="changeFirstName"> 更改第一个名字 </button></div>
</template><script lang="ts" setup>
import { ref } from 'vue'// 数据// ref 也可以创建对象类型的响应式数据,不过要使用.value
// ref 处理对象数据的时候,底层数据还是reactive格式的
let palace = ref({name: '兜率宫',add: '兜率宫。兜率宫位于江西省鹰潭市的龙虎山,是道教的重要圣地之一。它被认为是太上老君的道场,位于离恨天之上,是道教神话中兜率天宫的一部分。兜率宫原址位于龙虎山天门山,有着悠久的历史和文化背景。',no: 1
})let baxian = ref([{ id: 'b01', name: '铁拐李' },{ id: 'b02', name: '汉钟离' },{ id: 'b03', name: '张果老' },{ id: 'b04', name: '吕洞宾' },{ id: 'b05', name: '何仙姑' },{ id: 'b06', name: '蓝采和' },{ id: 'b07', name: '韩湘子' },{ id: 'b08', name: '曹国舅' },
])console.log(palace)
console.log(baxian)// reactive 重新分配一个新对象,会失去响应式可以使用Object.assign()来做整体替换,不会丢失响应式
function changePalace() {Object.assign(palace.value, {name: '天师殿',add: '天师殿,是道教的重要圣地之一。',no: 20})
}// 方法
function changeFirstName() {baxian.value[0].name = '孙悟空'
}
function showAdd() {alert(palace.value.add)
}
function changeName() {palace.value.name = palace.value.name == "兜率宫" ? '永乐宫' : '兜率宫'console.log(palace)
}
function changeNo() {palace.value.no += 1console.log(palace.value.no)
}
// 若要使用一个基本类型的响应式数据,必须使用ref
// 若要使用一个响应式对象成绩不深,ref和reactive都可以
// 若要使用一个响应式对象,层级比较深,推荐reactive
</script><style scoped>
.person {background-color: #ff9e4f;box-shadow: 0 0 10px;border-radius: 30px;padding: 30px;
}button {margin: 0 10px;padding: 0 5px;box-shadow: 0 0 5px;;
}
</style>

这篇关于Vue3【十】07使用ref创建基本类型的响应式数据以及ref和reactive区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1042431

相关文章

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Before和BeforeClass的区别及说明

《Before和BeforeClass的区别及说明》:本文主要介绍Before和BeforeClass的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Before和BeforeClass的区别一个简单的例子当运行这个测试类时总结Before和Befor

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

mapstruct中的@Mapper注解的基本用法

《mapstruct中的@Mapper注解的基本用法》在MapStruct中,@Mapper注解是核心注解之一,用于标记一个接口或抽象类为MapStruct的映射器(Mapper),本文给大家介绍ma... 目录1. 基本用法2. 常用属性3. 高级用法4. 注意事项5. 总结6. 编译异常处理在MapSt

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF