vue3 reactive数据更新,视图不更新问题

初次使用vue3 通过reactive 做响应式处理时,发现更新了数据,试图不更新问题。代码是这样写的

<template>
    <div>
        <div>
            数据:{{ dataList.name }}
        </div>
        <el-button type="primary" @click="btnFn()">修改数据</el-button>
    </div>
</template>

<script lang="ts" setup>
    import {
        reactive,
    } from 'vue'
    let dataList = reactive({
        name:'张三',
    });
    const btnFn = async () => {
        dataList = {
            name:'李四',
        };
        console.log(dataList)
    }
</script>

查阅资料说是需要内部再加个对象
改为:

<template>
    <div>
        <div>
            数据:{{ dataList.data.name }}
        </div>
        <el-button type="primary" @click="btnFn()">修改数据</el-button>
    </div>
</template>

<script lang="ts" setup>
    import {
        reactive,
    } from 'vue'
    const dataList = reactive({
        data: {
            name: '张三',
        }
    });
    const btnFn = async () => {
        dataList.data = {
            name: '李四',
        };
        console.log(dataList)
    }
</script>

通过这种方式确实会更新视图。具体内部方法实现我暂未去看源码内部实现,待后续再看

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

相关阅读更多精彩内容

友情链接更多精彩内容