vue3.0 reactive ref shallowReactive shallowRef 深度劫持(深度监视) 浅劫持(浅监视)

本文探讨了Vue3.0中ref和reactive的区别,通过示例展示了深度劫持(深度监视)与浅劫持(浅监视)在响应式数据处理上的差异。在示例中,修改深层属性导致不同响应式对象的行为变化,揭示了ref和reactive在深度和浅层数据监听上的工作原理。
摘要由CSDN通过智能技术生成

vue3.0 reactive ref shallowReactive shallowRef 深度劫持(深度监视) 浅劫持(浅监视)

<template>
    <div>m1:{{ m1 }}</div>
    <div>m2:{{ m2 }}</div>
    <div>m3:{{ m3 }}</div>
    <div>m4:{{ m4 }}</div>
    <button @click="updates">修改数据</button>
</template>

<script lang="ts">
import { reactive, shallowRef, shallowReactive, ref } from 'vue';

export default {
    setup() {
        // 深度劫持(深度监视) ---- 深度响应式
        const m1 = reactive({
            name: '鸣人',
            age: 20,
            car: {
                name: '拖拉机',
                color: 'red'
            }
        })

        // 浅劫持(浅监视) ---- 浅响应式
        const m2 = shallowReactive({
            name: '鸣人',
            age: 20,
            car: {
                name: '拖拉机',
                color: 'red'
            }
        })

        // 深度劫持(深度监视) ---- 深度响应式
        const m3 = ref({
            name: '鸣人',
            age: 20,
            car: {
                name: '拖拉机',
                color: 'red'
            }
        })

        // 浅劫持(浅监视) ---- 浅响应式
        const m4 = shallowRef({
            name: '鸣人',
            age: 20,
            car: {
                name: '拖拉机',
                color: 'red'
            }
        })


        const updates = () => {
            // m1.name += '===m1';
            // m1.car.name += '===m1'

            // m2.name += '===m2'
            // m2.car.name += '===m2'

            // m3.value.name += '==='
            // m3.value.car.name += '==='

            // m4.value.name += '==='
            // m4.value.car.name += '==='
        }

        return { m1, m2, m3, m4, updates }
    }
}
</script>

<style>
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端酱紫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值