Vue3_对响应式对象解构赋值之后失去响应性

官网toRefs() :响应式 API:工具函数 | Vue.js

toRefs 在调用时只会为源对象上可以枚举的属性创建 ref。如果要为可能还不存在的属性创建 ref,请改用 toRef

javascript 复制代码
setup(){

    const state = reactive({
        name:"张三"
        age:14
    })

    const stateAsToRefs = toRefs(state)
    //stateAsToRefs
    /*
    {
        name:Ref<string>
        age:Ref<number>
    
    }
    
    */
    state.name = "李四"
    console.log(stateAsToRefs.name.value)//李四
    
    stateAsToRefs.name.value = "张三"
    console.log(state.name)//张三
    
    const {name,age} = stateAsToRefs 

    return {name , age }

}
javascript 复制代码
<script setup>

function useFeatureX() {
  const state = reactive({
    foo: 1,
    bar: 2
  })

  // ...基于状态的操作逻辑

  // 在返回时都转为 ref
  return toRefs(state)
}

// 可以解构而不会失去响应性
const { foo, bar } = useFeatureX()

</script>

1 当对一个响应式对象进行es6的解构赋值之后,它将失去响应性

可以看到点击修改name的时候,数据变了,但是页面却没有更新。

2 可以使用vue的toRefs()方法,对对象进行解构

即可看到数据修改了以后,页面做出了响应

相关推荐
2501_948122633 分钟前
React Native for OpenHarmony 实战:Steam 资讯 App 隐私政策实现
javascript·react native·react.js·游戏·ecmascript·harmonyos
2501_948122636 分钟前
React Native for OpenHarmony 实战:Steam 资讯 App 主题设置实现
javascript·react native·react.js·游戏·ecmascript·harmonyos
P7Dreamer9 分钟前
微信小程序处理Range分片视频播放问题:前端调试全记录
前端·微信小程序
RedHeartWWW10 分钟前
初识next-auth,和在实际应用中的几个基本场景(本文以v5为例,v4和v5的差别主要是在个别显式配置和api,有兴趣的同学可以看官网教程学习)
前端·next.js
C_心欲无痕15 分钟前
前端页面中,如何让用户回到上次阅读的位置
前端
C_心欲无痕23 分钟前
前端本地开发构建和更新的过程
前端
C_心欲无痕27 分钟前
JavaScript 常见算法与手写函数实现
开发语言·javascript·算法
Mintopia27 分钟前
🌱 一个小而美的核心团队能创造出哪些奇迹?
前端·人工智能·团队管理
蚊道人32 分钟前
Nuxt 4 学习文档
前端·vue.js
悠哉摸鱼大王34 分钟前
前端音视频学习(一)- 基本概念
前端