Vue3基础(二)___reactive

简介: 本文介绍了Vue 3中使用`reactive`函数创建响应式对象的方法,并通过示例代码展示了如何在组件的模板中使用这些响应式数据以及如何通过方法修改它们。文章还比较了`ref`和`reactive`两种创建响应式数据的方式,说明了`ref`底层实际上是`reactive`,并且`ref(0)`相当于`reactive({value:0})`。

在Vue3中创建响应数据有两种方式一种是ref,另一种就是reactive

reactive

首先在该组件引入

import {
    ref, reactive } from "vue";
<template>
  <div>
    <p>姓名:{
   {
   obj.name}}</p>
    <p>年龄:{
   {
   obj.age}}</p>
    <p v-for="(item,index) in obj.habby" :key="index">爱好{
   {
   index+1}}:{
   {
   item}}</p>
  </div>
</template>

<script>
import {
    reactive } from "vue";
export default {
   
  name: "App",
  setup() {
   
    let obj = reactive({
   
      name: "zjq",
      age: 18,
      habby: ["跳舞", "唱歌", "游泳"]
    });

    return {
   obj}
  }
};
</script>

在这里插入图片描述
使用reactive创建的数据,也是需要return 出去,才能在视图层使用。
改变年龄:

<template>
  <div>
    <p>姓名:{
   {
   obj.name}}</p>
    <p>年龄:{
   {
   obj.age}}</p>   <button @click="ageFun">年龄加一</button>
    <p v-for="(item,index) in obj.habby" :key="index">爱好{
   {
   index+1}}:{
   {
   item}}</p>
  </div>
</template>

<script>
import {
    reactive } from "vue";
export default {
   
  name: "App",
  setup() {
   
    let obj = reactive({
   
      name: "zjq",
      age: 18,
      habby: ["跳舞", "唱歌", "游泳"]
    });
  function ageFun() {
   
    obj.age++
  }
    return {
   obj,ageFun}
  }
};
</script>

改变年龄成功,和ref相比较的话,我们这里少了一层value,
ref和reactive两个,ref的底层是reactive可以理解为
ref(0)==>>reactive({value:0})

  setup() {
   
    let num = ref(0)
    let num2 = reactive({
   value:0})
    console.log(num.value ===num2.value) //true
  }

在这里插入图片描述
在页面上使用的时候会判断该响应数据是否为ref创建的数据,是的话自动.value取数据;
判断依据为
在这里插入图片描述
__v_isRef 等于true说明是ref创建的响应变量。

代码整理:

<template>
  <div>
    <p>姓名:{
   {
   obj.name}}</p>
    <p>年龄:{
   {
   obj.age}}</p>
    <button @click="ageFun">年龄加一</button>
    <p v-for="(item,index) in obj.habby" :key="index">爱好{
   {
   index+1}}:{
   {
   item}}</p>
  </div>
</template>

<script>
import {
    ref, reactive } from "vue";
export default {
   
  name: "App",
  setup() {
   
    let num = ref(0);
    let num2 = reactive({
   value:0});
    console.log(num.value == num2.value);
    let {
    obj, ageFun } = reactiveF();
    return {
    obj, ageFun };
  }
};
function reactiveF() {
   
  let obj = reactive({
   
    name: "zjq",
    age: 18,
    habby: ["跳舞", "唱歌", "游泳"]
  });
  function ageFun() {
   
    obj.age++;
  }
  return {
    obj, ageFun };
}
</script>
目录
相关文章
|
10月前
|
JSON 数据格式
Vue3.0中的reactive介绍与使用
Vue3.0中的reactive介绍与使用
48 0
|
3月前
|
JavaScript 编译器 API
vue2和vue3区别
vue2和vue3区别
69 4
|
16小时前
|
JavaScript
Vue3基础(九)___computed
本文介绍了Vue 3中`computed`的两种用法:使用函数和使用对象。通过示例代码展示了如何创建只读的计算属性和可写的计算属性,以及它们在实际开发中的应用。文章还解释了`computed`属性如何依赖其他响应式数据,并在数据变化时更新。
5 0
Vue3基础(九)___computed
|
3月前
|
JavaScript 前端开发 API
vue3和vue2的区别
vue3和vue2的区别
|
4月前
Vue3 响应式数据 reactive使用
Vue3 响应式数据 reactive使用
YI
|
JavaScript 程序员
Vue学习笔记|Vue基础04
Vue学习笔记|Vue基础04
YI
62 1
YI
|
JavaScript 前端开发
Vue学习笔记|Vue基础03
Vue学习笔记|Vue基础03
YI
66 0
|
10月前
|
JavaScript 算法 API
Vue2.0和Vue3.0有什么区别?
Vue2.0和Vue3.0有什么区别?
57 0
|
10月前
|
开发框架 JavaScript 前端开发
Vue3中的Ref与Reactive:深入理解响应式编程
Vue3中的Ref与Reactive:深入理解响应式编程
2218 0