【vue3练习-03】reactive()函数实现数据响应式

使用前还是老套路需要引用

通常用来实现对象、数组等类型的数据响应式,与ref区别在于不需要.value,底层实现原理不同

<template>
  <div class="hello">
    {{ meili.father.captain.name }}
    <button @click="response">reactive函数实现对象响应式</button>
    <button @click="changeArr">reactive函数实现数组响应式</button>
    <span v-for="item in sunny" :key="item">{{item}},</span>
  </div>
</template>

<script>
import { ref, reactive } from "vue";
export default {
  name: "",
  setup() {
    let meili = reactive({
      captain: "乌索普",
      father: {
        name: "耶稣布",
        captain: {
          name: "香克斯",
        },
      },
    });
    let sunny = reactive(['路飞','索隆','山治','娜美',])
    function response() {
        // reactive跟ref的区别就在于他不用.value,直接就能拿到
        //不管对象有多少层都是响应式的
      meili.father.captain.name = "山贼王";
    }
    function changeArr(){
        //由于实现响应式的原理不再是Object.defineProperty,
        // 所以能够直接通过数组下标修改数组某个值,不再需要vue2里面的this.$set()方法了
        sunny[0] = '乌索普'
    }
    // 记得定义过的数据及方法都要返回
    return {
      meili,
      sunny,
      response,
      changeArr
    };
  },
};
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值