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

vue3使用ref和reactive

Vue 3引入了两个新的API,refreactive,用于创建响应式对象。这两个方法都位于Vue.prototype上,因此可以在组件实例中直接使用。

  1. ref

ref函数用于创建一个响应式引用对象。这个函数可以接受一个普通的变量或对象作为参数,并返回一个响应式引用对象。要访问这个引用的值,需要使用.value属性。

例如:

const count = ref(0);
console.log(count.value); // 0count.value++; // 响应式更新
console.log(count.value); // 1

在上面的例子中,我们使用ref函数创建了一个响应式引用对象,并将其初始值设置为0。然后,我们可以通过.value属性来访问和修改这个引用的值。当修改这个值时,Vue会自动更新相关的视图。

  1. reactive

reactive函数用于创建一个响应式对象。这个函数可以接受一个普通的对象作为参数,并返回一个响应式代理对象。这个代理对象会拦截所有的属性访问和修改操作,并自动更新相关的视图。

例如:

const state = reactive({ count: 0 });
console.log(state.count); // 0state.count++; // 响应式更新
console.log(state.count); // 1

在上面的例子中,我们使用reactive函数创建了一个响应式对象,并将其初始值设置为一个包含count属性的对象。然后,我们可以通过直接访问和修改这个对象的属性来触发响应式更新。与ref不同的是,我们不需要使用.value属性来访问和修改这个对象的属性。

Vue 3 使用 refreactive 创建响应式对象的完整示例:

<template>
<div>
<p>{{ count }}</p>
<button @click="increment">Increment</button>
</div>
</template><script>
import { ref, reactive } from 'vue';export default {
setup() {
// 使用 ref 创建响应式引用对象
const count = ref(1);// 使用 reactive 创建响应式对象
const state = reactive({
count: 0,
});// 使用 increment 方法修改引用对象的值和响应式对象的属性值
const increment = () => {
count.value++; // 修改引用对象的值
state.count++; // 修改响应式对象的属性值
};return {
count,
state,
increment,
};
},
};
</script>

在上面的示例中,我们使用 ref 创建了一个名为 count 的响应式引用对象,初始值为 1。我们还使用 reactive 创建了一个名为 state 的响应式对象,其中包含一个名为 count 的属性,初始值为 0。在 increment 方法中,我们通过调用 count.value++state.count++ 来修改引用对象的值和响应式对象的属性值。由于这些变量都是响应式的,因此当它们的值发生变化时,相关的视图也会自动更新。

http://www.lryc.cn/news/211815.html

相关文章:

  • 7 款用于解锁iPhone密码的苹果解锁软件
  • .jnlp
  • Linux启动之uboot分析
  • element -plus table的二次封装
  • windows应用软件扫描报告 不告谱 要钱
  • 世界前沿技术发展报告2023《世界航空技术发展报告》(七)机载系统与武器技术
  • JAVA 学习笔记——抽象类
  • 磁盘调度算法之先来先服务(FCFS),最短寻找时间优先(SSTF),扫描算法(SCAN,电梯算法),LOOK调度算法
  • postman接口测试—Restful接口开发与测试
  • RK3568-emmc控制器
  • 02-操作符及类型转换与控制流程语句
  • 判断一个字符串中是否包含中文字符
  • 软件测试面试怎样介绍自己的测试项目?会问到什么程度?
  • 莫名其妙el-table不显示问题
  • ElasticSearch复杂数据类型
  • JavaScript_Pig Game保存当前分数
  • 2023/10/30 JAVA学习
  • 测试八股文-Selenium
  • 数据库第8章作业
  • 【OpenCV实现平滑图像金字塔,轮廓:入门】
  • Java JVM垃圾回收确定垃圾的两种方式,GC Root
  • java集合之List接口实现类常用方法详解
  • 三分钟带你了解JS、原型、原型链
  • C# 基于腾讯云人脸核身和百度云证件识别技术相结合的 API 实现
  • LeetCode每日一题——275. H-Index II
  • 项目添加EZOpenSDK之后就开始报错:could not build module foundation等
  • “智能科技·链接未来”2024中国国际人工智能产品展览会·智博会
  • 华为NAT配置实例(含dhcp、ospf配置)
  • 怎样才能把视频号的视频保存到相册,怎么下载视频号视频两个方法轻松解决
  • 软考系统架构师知识点集锦七:计算机系统基础知识