当前位置: 首页 > news >正文

厦门建设局网站中标结果查询重庆做网站那里好

厦门建设局网站中标结果查询,重庆做网站那里好,qq飞车哪个公司开发的,买东西最便宜的软件Vue 3 的响应式系统是其核心特性之一,它允许开发者以声明式的方式构建用户界面。Vue 3 引入了两种主要的响应式 API:ref 和 reactive。本文将详细介绍这两种 API 的用法、区别以及在修改对象属性和修改整个对象时的不同表现,并提供完整的代码…

Vue 3 的响应式系统是其核心特性之一,它允许开发者以声明式的方式构建用户界面。Vue 3 引入了两种主要的响应式 API:refreactive。本文将详细介绍这两种 API 的用法、区别以及在修改对象属性和修改整个对象时的不同表现,并提供完整的代码示例。

1. ref 和 reactive 的定义

1.1 ref

ref 用于定义基本类型数据和对象类型数据。使用 ref 创建的变量必须通过 .value 属性访问和修改其值。

import { ref } from 'vue';const count = ref(0); // 基本类型数据
const user = ref({ name: 'Alice', age: 20 }); // 对象类型数据console.log(count.value); // 0
console.log(user.value.name); // Alice

1.2 reactive

reactive 用于定义对象类型数据。它返回一个响应式对象,可以直接访问和修改其属性,而不需要通过 .value

import { reactive } from 'vue';const user = reactive({ name: 'Alice', age: 20 });console.log(user.name); // Alice

2. ref 和 reactive 的区别

2.1 创建变量的方式

  • ref 创建的变量必须使用 .value 访问。
  • reactive 创建的对象可以直接访问其属性。

2.2 重新分配对象

  • reactive 重新分配一个新对象会失去响应式(可以使用 Object.assign 去整体替换)。
  • ref 可以通过 .value 重新分配整个对象,且保持响应式。

3. 使用原则

3.1 基本类型数据

若需要一个基本类型的响应式数据,必须使用 ref

const count = ref(0);

3.2 对象类型数据

  • 若需要一个响应式对象,层级不深,refreactive 都可以。
  • 若需要一个响应式对象,且层级较深,推荐使用 reactive
const user = reactive({name: 'Alice',age: 20,address: {city: 'New York',zip: '10001'}
});

4. 修改对象属性和修改整个对象的区别

4.1 修改对象属性

当使用 reactive 创建响应式对象时,直接修改其属性会触发视图更新。

import { reactive } from 'vue';const student = reactive({name: 'Alice',age: 20
});student.name = 'Bob'; // 触发视图更新
student.age = 21;    // 触发视图更新

4.2 修改整个对象

当使用 reactive 创建响应式对象时,重新分配一个新对象会失去响应式,需要使用 Object.assign 去整体替换。

import { reactive } from 'vue';const student = reactive({name: 'Alice',age: 20
});// 错误的做法,会失去响应式
student = { name: 'Bob', age: 21 };// 正确的做法
Object.assign(student, { name: 'Bob', age: 21 }); // 触发视图更新

4.3 使用 ref 修改对象和属性

当使用 ref 创建响应式对象时,需要通过 .value 访问和修改其属性。

import { ref } from 'vue';const studentRef = ref({name: 'Alice',age: 20
});// 修改属性
studentRef.value.name = 'Bob'; // 触发视图更新
studentRef.value.age = 21;    // 触发视图更新// 修改整个对象
studentRef.value = { name: 'Charlie', age: 22 }; // 触发视图更新

5. 完整代码示例

以下是一个简单的 Vue 3 应用示例,展示了如何使用 refreactive 创建响应式数据,并演示了修改对象属性和修改整个对象的区别。

<template><div><p>Student (ref): {{ studentRef.value.name }}, {{ studentRef.value.age }}</p><button @click="updateStudentRef">Update Student (ref)</button><p>Student (reactive): {{ studentReactive.name }}, {{ studentReactive.age }}</p><button @click="updateStudentReactive">Update Student (reactive)</button></div>
</template><script>
import { ref, reactive } from 'vue';export default {setup() {// 使用 ref 创建响应式数据const studentRef = ref({name: 'Alice',age: 20});const updateStudentRef = () => {studentRef.value.name = 'Bob';studentRef.value.age = 21;};// 使用 reactive 创建响应式数据const studentReactive = reactive({name: 'Alice',age: 20});const updateStudentReactive = () => {studentReactive.name = 'Bob';studentReactive.age = 21;};return {studentRef,updateStudentRef,studentReactive,updateStudentReactive};}
};
</script>

6. 总结

Vue 3 的 refreactive 提供了灵活的响应式数据管理方式。ref 适合基本类型数据和需要显式访问 .value 的场景,而 reactive 适合对象类型数据,特别是层级较深的对象。理解它们的区别和使用场景,可以帮助开发者更有效地构建响应式应用。

通过本文的介绍和示例代码,希望你能更好地理解 Vue 3 中的响应式系统,并在实际项目中灵活运用 refreactive

http://www.yayakq.cn/news/340738/

相关文章:

  • 汕头网站优化系统附近的网站建设公司
  • 静海网站建设公司网站开发能作为无形资产吗
  • 广州网站设计后缀深圳网站建设知名 乐云践新
  • 俄文网站建设方案aso优化哪家好
  • 网站做pcwordpress改字库
  • 城市建设鹤岗市网站常州制作网站价格
  • 龙华网站建设yihekj网站架构怎么看
  • 汕头网站搭建阿里主机 wordpress
  • 吴桥网站建设价格最好永久免费素材网
  • 国外wordpress主题站河北专业信息门户网站定制
  • 赣州瑞金网站建设wordpress视频幻灯片
  • win2012服务器做网站湖州网站建设推广
  • 政务网的门户网站建设iis配置网站是什么
  • 简述建设网站的基本流程高端网站建设论坛
  • 网站seo价格网页设计:编程学习网站素材
  • 网站免费源码不用下载wordpress可以上传文件吗
  • 软件开发培训机构出来的人社保是怎么交的企业网站分析与优化
  • 惠州企业网站建设网站开发与规划就业前景
  • 创意网站设计团队图片素材网站模板
  • 河池市住房和城乡建设局网站如何做淘客网站
  • 河南郑州建网站公司app开发流程详解
  • 怎么办个人网站做网站 以图搜货
  • 铁道部网上订票网站素材上海松江水处理网站建设
  • 海南响应式网站建设制作做网站设计制作的
  • 网站专题页面制作深圳网站建设网站优化服务
  • 网站开发周期小学校园文化建设网站
  • 网站建设与管理课后作业答案制作教育类网站
  • 怎样免费网站建设网页怎么保存到桌面
  • 南充建设网站新农宝网站建设方案
  • 网站已经克隆好了 怎么做仿站网站建设的实训报告的实训感受