vue3 reactive函数

作者: 深度剖析JavaScript | 来源:发表于2020-11-07 21:27 被阅读0次

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>

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

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

以上就是vue3reactive函数基本使用!

相关文章

  • Vue3(五)reactive vs ref(中)

    reactive 相关的函数 Vue3为 reactive 提供了一些列的函数,目的是可以更好的使用reactiv...

  • vue3与react、 react hooks

    一、Vue3新特性:setup、ref、reactive、computed、watch、watchEffect函数...

  • vue3 reactive函数

    reactive的用法与ref的用法相似,也是将数据变成响应式数据,当数据发生变化时UI也会自动更新。不同的是re...

  • vue3 组合api写法

    vue3写法 变量声明改变,不用在创建data函数,使用reactive声明,比如: emit接收方式一样,触发不...

  • Vue3.0 响应式原理

    Vue3 使用 Proxy 对象重写响应式系统,这个系统主要有以下几个函数来组合完成的: 1、reactive:接...

  • vue3—reactive如何更改属性

    vue3新增了响应性API,其中数据有两种,ref和reactive。reactive支持非原始对象,基础类型不能...

  • vue3

    ~ vue3 的基础 api 有那些 const { createApp, reactive,// 创建响应式数据...

  • Vue3中可在setup 内使用的 api

    Vue3 新增了许多新的api。例如:ref, reactive, readonly, toRef,toRefs。...

  • vue3源码之reactive

    vue3源码之reactive.ts解析 reactivity是vue响应式的核心 这块在vue3中完全重构了 采...

  • Vue3 reactive响应式赋值问题

    来源:vue3中的reactive对象赋值问题 - SegmentFault 思否[https://segment...

网友评论

    本文标题:vue3 reactive函数

    本文链接:https://www.haomeiwen.com/subject/zcyfbktx.html