Vue中對數組和對象進行遍歷和修改方式
對數組和對象進行遍歷和修改
1、對數組進行循環
v-for進行循環,有兩個參數(item,index)
註意:template可以成為占位符,在DOM裡面不顯示
2、 修改數組的時候,不能直接通過下標去增加修改刪除
(1)可以用過push/pop/shift/unshift/splice/sort/reverse方法
(2)也可以直接改變(重新定義)list數組的整體 (var list = [ ])
(3)全局的Vue.set(app7.list,1<此處代表下標>,2)
局部的app7.$set(app7.list,1<此處代表下標>,2)
3、對對象進行循環
v-for進行循環,有三個參數(item,index,key)
4、增加對象的時候
(1)通過重新定義引用的對象 (var obj = { })
(2)set方法 全局的Vue.set(app7.obj,“sex”<此處代表要增加的屬性>,“女”)
局部的app7.$set(app7.obj,“sex”<此處代表要增加的屬性>,“女”)
<!-- v-for的使用 --> <div id="app7"> // 對數組進行循環 <template v-for="(item,index) of list" :key="item.id"> <div> {{item.text}} ---- {{index}} </div> <span> {{item.text}} ---- {{index}} </span> </template> //對對象進行循環 <template v-for="(item,index,key) of obj"> <div> {{item}} ---- {{index}}-----{{key}} </div> </template> </div>
<script> var app7 = new Vue({ el: '#app7', data: { list: [ { id: "1", text: '1' }, { id: "2", text: '2' }, { id: "3", text: '3' }, ], obj: { name: 'mao', age: 28, address: 'liulin' } } }) </script>
修改數組和對象的特殊情況以及修改方法
div部分
<div id="root"> {{title}} <my-header></my-header> {{list}} {{obj}} </div> <div id="app"> {{title}} </div>
script部分
<script> // 全局定義的組件 Vue.component('my-header', { template: ` <header>title</header> ` }) // 實例化Vue var vm = new Vue({ el: '#root', data: { title: 'hello', list: ['a', 'b'], obj: { x: 0 } } }) var vm2 = new Vue({ el: '#app', data: { title: 'world' } }) </script>
修改數組的兩個特殊情況
1.arr.length = 0, 不具備響應特性
2.arr[0] = 100, 不具備響應特性
- 修改對象的特殊情況
- 添加obj.x,x屬性,也不具備響應特性
修補方法
vm.$set(target, propertyName/index, value)//實例化一個vue,試用貼set屬性改變對應的value值 Vue.set(target, propertyName/index, value)//直接使用vue的屬性,要與實例化vue方法區分,這個沒有$ vm.$forceupdate()
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 基於JavaScript實現HarmonyOS備忘錄服務卡片
- vue實現錨點跳轉及滾動監聽的方法
- Vue2使用cube-ui 實現搜索過濾、高亮功能
- vue遞歸實現自定義tree組件
- vue3中如何使用ts