reactive和ref的区别

  • 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>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,677评论 19 139
  • 前言 我们都知道vue3.0版本对所有的底层代码做了一次更新,尤其是响应式跟2.0的变化最大; 在2.0的时候使用...
    嘎子同学阅读 9,782评论 1 3
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,070评论 2 59
  • 回答面试题的套路 1、先说这个点的明确定义,或者是特性; 2、再说具体的应用场景; 3、说说自己的看法、观点; 4...
    Amanda妍阅读 58,621评论 16 137
  • 作为有5年前端开发的老司机来说已经面试了无数家公司了,现在大多数公司面试,都在问“原理”、“源码”,不能只知道怎么...
    Auoth阅读 1,260评论 0 10

友情链接更多精彩内容