vue 中this.$set 动态绑定数据的案例讲解
导读:收集整理的这篇文章主要介绍了vue 中this.$set 动态绑定数据的案例讲解,觉得挺不错的,现在分享给大家,也给大家做个参考。 感觉网上对this.$set的讲解乱糟糟的,我来总结一...
收集整理的这篇文章主要介绍了vue 中this.$set 动态绑定数据的案例讲解,觉得挺不错的,现在分享给大家,也给大家做个参考。 感觉网上对this.$set的讲解乱糟糟的,我来总结一下对它单个数据、对象、数组、json数据的绑定.
话不多说直接上代码:
template> div> !-- 单个数据 --> button @click="text0a"> text0/button> p> text0: { { text0} } /p> !-- 对象 --> button @click="textObja"> textObj/button> p> textObj.text1: { { textObj.text1} } /p> !-- 数组 --> button @click="textArra"> textArr/button> p> textArr[1]: { { textArr[1]} } /p> !-- json数据 --> button @click="textJsona"> textJson/button> p> textJson[1].t5: { { textJson[1].t5} } /p> /div> /template> script> export default { data() { return{ text0 : '', textObj: { } , textArr: [], textJson:[ { t0: ''} , { t4: ''} , { t7: ''} , ] } } , methods: { text0a: function () { let vm = this let text100 = 'efghjk' vm.$set(vm,'text0',text100) //等效于 vm.$set(vm,'text0','efghjk') } , textObja: function () { let vm = this let textObj100 = { text1: '123', text2: '456' } vm.$set(vm.textObj,'text1',textObj100.text1) //此时等效于 vm.$set(vm,'textObj',textObj100) } , textArra: function () { let vm = this let textArr200 = ['a1','a2','a3'] vm.$set(vm,'textArr',textArr200) } , textJsona: function () { let vm = this let textJson300 = [ { t1: 't1',t2: 't2',t3: 't3'} , { t4: 't4',t5: 't5',t6: 't6'} , { t7: 't7',t8: 't8',t9: 't9'} , ] vm.$set(vm.textJson[1],'t5',textJson300[1].t5) //此时等效于 vm.$set(vm,'textJson',textJson300) } } } /script> style> /style>
补充:Vue 使用$set动态给数据设置属性
在实际的开发过程中,给表单元素绑定model的时候,绑定的元素的属性是根据后台数据动态生成的。如果使用常规的赋值方式,是无法更新视图的
需要使用
this.$set(dataName,keyName,keyValue)
export default { data:{ // 先定义一个空对象 formObject:{ } , arrayList:[], } , mounted() { this.inITPage() } , methods:{ initPage(){ this.$Store.dispatch(namespace/callData).then(res=> { // 给数据设置key-value res.data.foreach(item=> { // ❗❗❗❗❗ this.formObject[item.name] = item.value // ❗❗❗❗ 这种方式是不能更新视图的 this.$set(this.formObject, item.name, item.value) // ✅✅✅✅可以更新视图 } ) } ) // 修改数组 this.$store.dispatch(namespace/callData).then(res=> { // 给数据设置key-value this.$set(this.arrayList,0,(res.data)[0].id) ✅✅✅✅可以更新视图 } ) } } }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
您可能感兴趣的文章:- Vue.set()和this.$set()使用和区别
- Vue 报错TypeError: this.$set is not a function 的解决方法
- Vue.set() this.$set()引发的视图更新思考及注意事项
- 从vue源码解析Vue.set()和this.$set()
- vue中 this.$set的使用详解
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: vue 中this.$set 动态绑定数据的案例讲解
本文地址: https://pptw.com/jishu/594386.html