美文网首页
reactive和ref的区别

reactive和ref的区别

作者: 唐吉柯德 | 来源:发表于2021-04-14 22:27 被阅读0次
  • ref(param) === reactive({value: param})
  • ref和reactive都为递归监听
  • 如果在template自动使用ref数据的时候,会自动添加value属性
<template>
  <div class="page-wrapper">
    <p>--------------------------ref和reactive的关系---------------------</p>
    <p>{{stuAge}}</p>
    <button @click="myFn">点我一下,agg++</button>
    <p>{{refData}}</p>
    <button @click="refFn">点我一下,refChange</button>
    <p>{{reactiveData}}</p>
    <button @click="reactiveFn">点我一下,reactiveChange</button>
  </div>
</template>
<script lang="js">
import { defineComponent, reactive, ref} from 'vue';
export default defineComponent({
  name: 'diffRefReactive',
  setup(){
    let refData= ref({
        gf: {
            f: {
                s: {
                    d: 4
                },
                c: 3
            },
            b: 2
        },
        a: 1
    });
    let reactiveData= reactive({
        gf: {
            f: {
                s: {
                    d: 4
                },
                c: 3
            },
            b: 2
        },
        a: 1
    });
    console.log('refData:', refData.value);
    console.log('refData.value.gf:', refData.value.gf);
    console.log('refData.value.gf.f:', refData.value.gf.f);
    console.log('refData.value.gf.f.s:', refData.value.gf.f.s);


    console.log('reactiveData:', reactiveData);
    console.log('reactiveData.gf:', reactiveData.gf);
    console.log('reactiveData.gf.f:', reactiveData.gf.f);
    console.log('reactiveData.gf.f.s:', reactiveData.gf.f.s);

    
    let stuAge= ref(18)
    console.log(stuAge);
    function myFn(){
      stuAge++;
    }
    function refFn(){
        refData.value.a = 666;
        refData.value.gf.b = 666;
        refData.value.gf.f.c = 666;
        refData.value.gf.f.s.d = 666;
    }
    function reactiveFn(){
        reactiveData.a = 666;
        reactiveData.gf.b = 666;
        reactiveData.gf.f.c = 666;
        reactiveData.gf.f.s.d = 666;
    }
    return {
        stuAge,
        refData,
        reactiveData,
        myFn,
        refFn,
        reactiveFn
    }
  }
  
})
</script>

相关文章

  • Vue3 ref和reactive的使用和区别以及响应式原理

    这里介绍下ref和reactive函数的使用区别和响应式原理,以及在实际项目中如何使用和一些常见问题 ref函数:...

  • Vue3总结

    ref、reactive、toRef、toRefs的区别 API是否更新视图是否改变原始数据是否可以解构使用ref...

  • Vue 3.0 ref 和reactive 区别

    ref的使用 ref 的作用就是将一个原始数据类型(primitive data type)转换成一个带有响应式特...

  • ref和reactive

    ref:适合简单数据类型,浅转换为响应数据。 例如以下: const a=1; const b=2; 注意:如果传...

  • vue3 学习

    什么是ref? ref和reactive一样,也是用来实现响应式数据的方法,由于reactive必须传递一个对象,...

  • 五.ref,refs, reactive区别

    ref和toRef的区别 (1). ref本质是拷贝,修改响应式数据不会影响原始数据;toRef的本质是引用关系,...

  • 何时使用ref?何时使用reactive?

    一般情况下vue3有两种定义模板数据的方式ref和reactive,但是何时使用ref?何时使用reactive?...

  • ref、reactive、toRef、toRefs的区别

    1、ref: 为数据添加响应式状态,返回一个具有响应式状态的副本。setup要通过'.value'属性来获取,te...

  • vue3 响应式数据

    reactive ref toRef toRefs

  • ref/reactive

    1.reactive reactive能够将一个对象经过proxy代理后成为响应式对象返回 1.1语法 react...

网友评论

      本文标题:reactive和ref的区别

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