vue3中retive的错误用法导致数据不跟新

retive的错误用法

<template>
    <div>
        司藤的信息==>{{ objInfo  }}
        <button @click="handerHttpServe">获取远端的值</button>
    </div>
</template>
<script>
import { reactive } from '@vue/reactivity'
export default {
    setup () {
        let objInfo=reactive({ })
        function handerHttpServe(){
            setTimeout(()=>{
                objInfo={
                    name:'司藤',sex:'女',}
            },400)
        }
        return {
            objInfo,handerHttpServe
        }
    }
}
</script>

为什么无法更新视图呢??

我们都知道retive是响应式的,
命名是可以去跟新值的。
但是为啥子却更新失败了呢??
let objInfo=reactive({ })
objInfo虽然是一个对象
但是你赋值却是
objInfo={
    name:'司藤',}
这样的赋值方式是vue检测不到的

解决办法 其一:

setup () {
    let objInfo=reactive({})
    function handerHttpServe(){
        setTimeout(()=>{
            objInfo.name="张三"
        },400)
    }
    return {
        objInfo,handerHttpServe
    }
}

解决办法其二

export default {
    setup () {
        let objInfo=reactive({
            obj:{

            }
         })
        function handerHttpServe(){
            setTimeout(()=>{
                objInfo.obj={
                    name:'司藤',handerHttpServe
        }
    }
}

相关文章

这篇文章我们将通过debug源码的方式来带你搞清楚defineAsync...
欧阳老老实实的更新自己的高质量vue源码文章,还被某2.6k st...
前言 在Vue3.5版本中响应式 Props 解构终于正式转正了,这个...
组合式 (Composition) API 的一大特点是“非常灵活”,但也因...
相信你最近应该看到了不少介绍Vue Vine的文章,这篇文章我们...
前言 在欧阳的上一篇 这应该是全网最详细的Vue3.5版本解读文...