$set 动态添加属性
时间: 2023-10-12 14:00:39 浏览: 41
使用$set方法可以在Vue组件中动态添加属性。在给对象添加属性时,可以使用$set方法来确保响应式更新。
在引用的例子中,使用$set方法将msg对象的前两个属性赋值给data里的obj对象的arr属性。首先使用Object.keys(msg)获取msg对象的属性列表,然后通过设置keyarr的长度为2来只保留前两个属性。接下来使用map方法遍历keyarr数组,在遍历的过程中,使用$set方法将msg对象的属性值赋给obj对象的arr属性中的对应位置。
在引用的例子中,$set方法用于动态添加dataObj对象的isShowImg属性。在showImage方法中,通过改变isShowImg的值来切换图片的显示和隐藏。在调用$set方法时,需要传入两个参数,第一个参数是要添加属性的对象,第二个参数是要添加的属性名。
在引用的例子中,还演示了如何在对象已经存在isShowImg属性时直接修改其值,而不需要使用$set方法。通过使用Object.prototype.hasOwnProperty.call方法来判断dataObj对象是否已经存在isShowImg属性,如果存在,则直接修改其值,否则使用$set方法将isShowImg属性添加到dataObj对象中。
总结来说,$set方法可以在Vue组件中动态添加属性,确保对象的属性能够响应式更新。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [vue的$set方法给对象动态添加属性](https://blog.csdn.net/qq_45560350/article/details/116800276)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Vue使用this.$set动态添加属性值](https://blog.csdn.net/yh_zeng2/article/details/124019155)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]