Vue3.0中还为我们提供了一个对象式响应的reactive函数 。

Reactive函数创建一个响应式对象。

一:Reactive函数
其实,在我看来,reactive函数 就是VUE3.0为我们提供的替代VUE2.0中data的一个函数,因此,在这里,我不建议将方法也写到reactive函数中。

reactive函数 中只写数据即可。

1:引入

import {ref,reactive,
} from "vue";

2:实例

我这里使用上一部分中我们测试使用的代码来做示例,刚好对比一下ref与reactive在写法上边的区别。

Helloworld.vue

<template><h1>{{ msg }}</h1><!-- <button @click="count++">count is: {{ count }}</button> --><!-- 模板语法需要使用data.属性来调用 --><button @click="count++">count is: {{ data.count }}</button><p>Edit <code>components/HelloWorld.vue</code> to test hot module replacement.</p><button @click="clickMe()">点我弹窗</button>
</template><script lang='ts'>
import {ref,reactive
} from "vue";
export default {name: 'HelloWorld',props: {msg: String},// 使用setup 代替 data// 因为我这里使用的是typescript,因此需要给参数指定类型setup(props:any,context:any){// ref 定义响应式数据// let count = ref(0); // reactive 创建响应式对象let data = reactive({// 定义响应式数据count:0,});const clickMe = () => {// 使用ref关键字绑定的变量,赋值 的时候必须使用.value// count.value++;// 调用reactive 定义对象的参数的时候需要使用对象.来调用data.count++;alert('hi');}return {data,clickMe}},
}
</script>

3:主要有这几个区别:
1:在js中调用需要使用data.属性来赋值使用。

2:在VUE模板语法中,也需要使用data.属性来赋值使用。

二:toRefs函数
模板语法中需要使用data.属性来调用属性显示,相对来说就比较麻烦。

其实我们可以使用ES6中的扩展运算符来对其进行解构处理,但是,这样吧解构之后,便不再具有响应式的属性,这个不行。

VUE3.0为我们提供了toRefs函数可以解决这个问题。

1:引入

import {ref,reactive,toRefs
} from "vue";

2:示例
Helloworld.vue

<template><h1>{{ msg }}</h1><button @click="count++">count is: {{ count }}</button><!-- 模板语法需要使用data.属性来调用(单独使用reactive函数) --><!-- <button @click="count++">count is: {{ data.count }}</button> --><p>Edit <code>components/HelloWorld.vue</code> to test hot module replacement.</p><button @click="clickMe()">点我弹窗</button>
</template><script lang='ts'>
import {ref,reactive,toRefs
} from "vue";
export default {name: 'HelloWorld',props: {msg: String},// 使用setup 代替 data// 因为我这里使用的是typescript,因此需要给参数指定类型setup(props:any,context:any){// ref 定义响应式数据// let count = ref(0); // reactive 创建响应式对象let data = reactive({// 定义响应式数据count:0,});const clickMe = () => {// 使用ref关键字绑定的变量,赋值 的时候必须使用.value// count.value++;// 调用reactive 定义对象的参数的时候需要使用对象.来调用data.count++;alert('hi');}// 使用toRefs函数对data对象进行包装,确保使用扩展运算符进行解构之后,仍具有响应式let param = toRefs(data);return {// data,...param,clickMe}},
}
</script>

完整的代码已经给出,具体的使用,你可能还需要自己试一下。
————————————————
版权声明:本文为CSDN博主「camellias_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_39708228/article/details/114278167

VUE3 reactive与toRefs函数相关推荐

  1. Vue3 生命周期钩子函数

    一.Vue3生命周期钩子 setup() : 开始创建组件之前,在 beforeCreate 和 created 之前执行,创建的是 data 和 method onBeforeMount() : 组 ...

  2. VUE3(setup响应式函数系统API)

    Vue3.0提供的一组具有响应式特性的杉树式API,以函数的形式提供 1.reactive reactive()函数接收一个普通对象,返回该普通对象的响应式代理对象 2.ref ref()函数接收一个 ...

  3. Vue3 reactive 源码分析

    概要 本文通过抽取Vue3 reactive源码中的主要部分,来理解其响应式object的实现方式.本文源码基于这个入口文件:github reactive.ts reactive() 源码位置:gi ...

  4. vue3生命周期钩子函数

    vue2生命周期钩子函数视图 vue3生命周期钩子函数视图 代码 // 通过配置项 beforeCreate () { console.log('beforeCreate'); }, created ...

  5. vue中ref、reactive和 toRefs toRef

    ref和reactive都是响应式的引用,其原理是通过 proxy 对数据进行封装,当数据变化时,触发模版等内容的更新, ref 处理基础类型的数据(string,number..),reactive ...

  6. vue3 reactive函数用法

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

  7. vue3—reactive如何更改属性

    vue3新增了响应性API,其中数据有两种,ref和reactive. reactive支持非原始对象,基础类型不能使用(Number,Boolean等) 例1 const obj = reactiv ...

  8. vue2.x的h函数(createElement)与vue3中的h函数

    1. vue2.x的 h 函数(createElement) 使用方法及介绍:(参考官网提取) h函数第一个是标签名字 或者是组件名字,第二个参数是配置项,第三个参数是 innerText ,不会帮你 ...

  9. Vue3 生命周期Hooks函数与调度器Scheduler的原理

    大厂技术  高级前端  Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 写在最前:本文章的目标 Vue3的生命周期的实现原理是比较简单的,但要理解整个Vue3的生命 ...

最新文章

  1. iview 表单 验证_iview必备技能一、表单验证规则
  2. 在Mac OS X 10.13.2中安装nltk 和numpy
  3. HTTP 方法:GET 对比 POST
  4. php操作redis_PHP操作redis的两种方式
  5. 阿卡姆疯人院需要java吗_蝙蝠侠阿甘疯人院 这个报错 怎么解决 哪位大神知道...
  6. [转]关于数据库的并发性的一个解决方案
  7. 京东供应链金融科技推出“采购融资”服务 最高100万无抵押融资
  8. redhat常用基础命令代码
  9. VS快速生成JSON数据格式对应的实体
  10. 黄绿色——三色配色篇
  11. 计算机考试表格函数应用题,2017年职称计算机考试Excel练习题2
  12. php微信公众号退款,微信公众号支付--4--微信退款
  13. Flink中的时间和窗口 完整使用 (第六章)
  14. 欧洲计算机专业排名,最新!2021年QS世界大学学科排名发布!欧洲各国各学科专业排名表现抢眼!...
  15. swift 框架大全
  16. Docker在蚂蚁金融云平台中的探索与实践
  17. linux 转型 安卓,国内知名Linux网站Linux公社和红联都转型为Android安卓网站
  18. Qlikview脚本生成日历表
  19. 程序人生(四):洋哥差点被开除的经历
  20. 基于位置(Lbsn)的社交网络中混合推荐算法的设计

热门文章

  1. 如何将多个excel表格合并成一个_怎样在线就能将多个PDF文档合并成一个?
  2. Sametime SDK
  3. 用VC++进行MapX二次开发::之三------使用MapX工具
  4. win10 安装oracle11g完整教程
  5. [Halcon] WriteImage保存图像崩溃问题
  6. linux 开机进入initramfs
  7. 建立与输出一元多项式
  8. 根据依序输入的一元多项式的系数输出此多项式
  9. Android TableLayout记
  10. [美国签证]准备材料及面签过程