vue3 reactive函数用法实战教程

作者:wuxing164 时间:2023-07-02 16:37:36 

vue3 reactive函数用法

reactive的用法与ref的用法相似,也是将数据变成响应式数据,当数据发生变化时UI也会自动更新。不同的是ref用于基本数据类型,而reactive是用于复杂数据类型,比如对象和数组
例如:定义一个对象类型的变量user

<template>
 <div>
   <p>{{ user }}</p>
   <button @click="increase">click me! one year later</button>
 </div>
</template>

<script>
import { reactive } from "vue";
export default {
 name: "reactive",
 setup() {
   const user = reactive({ name: "Alice", age: 12 });
   function increase() {
     ++user.age
   }
   return { user, increase };
 },
};
</script>

如上,当点击按钮时,让数据user.age加1,当Vue发现数据发生变化,UI会自动更新
那我们验证了,确实reactive函数可以将一个复杂数据类型变成响应式数据。我们不妨将reactive函数执行的结果打印出来看下,看看它返回值是什么
reactive将传递的对象包装成了proxy对象

我们发现,reactive执行结果是将传递的对象包装成了proxy对象
接下来我们测试一下,如果传递基本数据类型呢?

<template>
 <div>
   <p>{{ userAge }}</p>
   <button @click="increase">click me! one year later</button>
 </div>
</template>

<script>
import { reactive } from "vue";
export default {
 name: "reactive",
 setup() {
   let userAge = reactive(12);
   function increase() {
     console.log(userAge);
     ++userAge;
   }
   return { userAge, increase };
 },
};
</script>

运行发现,基本数据传递给reactive,reactive并不会将它包装成porxy对象,并且当数据变化时,界面也不会变化

需要注意的是,reactive中传递的参数必须是json对象或者数组,如果传递了其他对象(比如new Date()),在默认情况下修改对象,界面不会自动更新,如果也需要具有响应式,可以通过重新赋值的方式实现

使用ref函数可以处理基本数据,使期变成响应式数据

Vue3中reactive的理解

1.什么是reactive?

  • reactive是Vue3中提供实现响应式数据的方法.

  • 在Vue2中响应式数据是通过defineProperty来实现的.

  • 而在Vue3响应式数据是通过ES6的Proxy来实现的

2.reactive注意点

  • reactive参数必须是对象(json/arr)

  • 如果给reactive传递了其他对象,默认情况下修改对象,界面不会自动更新,如果想更新,可以通过重新赋值的方式.

错误示范

当传递的是非对象时,页面不会发生响应

vue3 reactive函数用法实战教程

正确实例

vue3 reactive函数用法实战教程

arr正确实例

传入数组会转成proxy对象

vue3 reactive函数用法实战教程

来源:https://blog.csdn.net/wuxing164/article/details/109801055

标签:vue3,reactive,函数
0
投稿

猜你喜欢

  • MySQL 序列 AUTO_INCREMENT详解及实例代码

    2024-01-20 17:04:37
  • pip安装Python库时遇到的问题及解决方法

    2023-06-20 14:00:01
  • Python打开文件、文件读写操作、with方式、文件常用函数实例分析

    2023-07-01 16:31:08
  • go 下载非标准库包(部份包被墙了)到本地使用的方法

    2024-05-10 13:56:50
  • 朴素贝叶斯分类算法原理与Python实现与使用方法案例

    2022-03-11 10:59:04
  • Python使用numpy实现BP神经网络

    2021-11-26 22:16:32
  • SQL Server数据库连接查询的种类及其应用

    2009-01-06 11:28:00
  • PHP采集静态页面并把页面css,img,js保存的方法

    2023-10-22 19:44:22
  • Python基于codecs模块实现文件读写案例解析

    2023-08-31 16:25:21
  • 利用Javascript实现一套自定义事件机制

    2024-05-03 15:59:07
  • .Net中控件的命名规则

    2024-06-05 09:25:15
  • ASP中的全角和半角之间的转化

    2008-06-06 13:34:00
  • 对pyqt5之menu和action的使用详解

    2022-03-12 23:00:37
  • 五种方法解决 Web2.0设计中的匹配度

    2007-09-22 10:58:00
  • SQL实现查询某字段的值为空的记录

    2024-01-18 13:44:56
  • python贪婪匹配以及多行匹配的实例讲解

    2021-12-27 20:01:04
  • javascript-表格排序(降序/反序)实现介绍(附图)

    2023-08-19 15:57:10
  • python+pytest接口自动化之token关联登录的实现

    2023-01-21 13:27:37
  • CPQuery 解决拼接SQL的新方法

    2012-11-30 20:01:46
  • Golang巧用defer进行错误处理的方法

    2023-08-05 03:21:13
  • asp之家 网络编程 m.aspxhome.com