开发者社区> 问答> 正文

动态给vue的data添加一个新的属性时为什么不刷新?怎样解决?

已解决

动态给vue的data添加一个新的属性时为什么不刷新?怎样解决?

展开
收起
游客dndzx3dbvf2jq 2022-08-11 20:51:07 894 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    原因:一开始data里面的obj的属性会被设成了响应式数据,而后面新增的属性,并没有通过Object.defineProperty设置成响应式数据,所以当我们动态添加的时候并不会刷新

    解决:

    1.如果为对象添加少量的新属性,可以直接采用Vue.set()

    2.如果需要为新对象添加大量的新属性,则通过Object.assign()创建新对象

    3.如果你实在不知道怎么操作时,可采取$forceUpdate()进行强制刷新 (不建议)

    PS:vue3是用过proxy实现数据响应式的,直接动态添加新属性仍可以实现数据响应式

    2022-08-11 21:44:06
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
技术图谱:由专家组参与技术图谱的绘制与编写,知识与实践的结合让开发者们掌握学习路线与逻辑,快速提升技能 电子书:电子书由阿里内外专家打造,供开发者们下载学习,更与课程相结合,使用户更易理解掌握课程内容 训练营:学习训练营 深入浅出,专家授课,带领开发者们快速上云 精品课程:汇集知识碎片,解决技术难题,体系化学习场景,深入浅出,易于理解 技能自测:提供免费测试,摸底自查 体验实验室:学完即练,云资源免费使用
问答排行榜
最热
最新

相关电子书

更多
Vue.js 在前端服务化上的探索与实践 立即下载
Vue.js在前端服务化上的实践与探索 立即下载
利用编译将 Vue 组件转成 React 组件 立即下载