vue中push()和splice()的使用解析
vue push()和splice()的使用解析
push()使用
push() 方法可向數(shù)組的末尾添加一個(gè)或多個(gè)元素,并返回新的長(zhǎng)度。
注意:
1. 新元素將添加在數(shù)組的末尾。
2.此方法改變數(shù)組的長(zhǎng)度。
數(shù)組中添加新元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.push("Kiwi"); console.log(fruits); //["Banana", "Orange", "Apple", "Mango","Kiwi"];
splice()使用
splice() 方法向/從數(shù)組中添加/刪除項(xiàng)目,然后返回被刪除的項(xiàng)目
注意:這種方法會(huì)改變?cè)紨?shù)組
語(yǔ)法:
array.splice(index,len,item1,.....,itemX)
index
: 必需,數(shù)組開(kāi)始下標(biāo) (必須是數(shù)字)len
: 替換/刪除的長(zhǎng)度(必須是數(shù)字,但可以是 “0”;如果未規(guī)定此參數(shù),則刪除從 index 開(kāi)始到原數(shù)組結(jié)尾的所有元素。)item
: 替換的值,刪除操作的話(huà) item為空
說(shuō)明:
如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數(shù)組。
刪除
//刪除起始下標(biāo)為1,長(zhǎng)度為1的一個(gè)值(len設(shè)置1,如果為0,則數(shù)組不變)
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(1,1); console.log(fruits); //["Banana", "Apple", "Mango"];
//刪除起始下標(biāo)為1,長(zhǎng)度為2的一個(gè)值(len設(shè)置2)
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(1,2); console.log(fruits); //["Banana", "Mango"];
替換
//替換起始下標(biāo)為1,長(zhǎng)度為1的一個(gè)值為‘ttt’,len設(shè)置的1
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(1,1,'ttt'); console.log(fruits); //["Banana", 'ttt',"Apple", "Mango"];
//替換起始下標(biāo)為1,長(zhǎng)度為2的兩個(gè)值為‘ttt’,len設(shè)置的1
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(1,2,'ttt'); console.log(fruits); //["Banana", 'ttt', "Mango"];
添加
//在下標(biāo)為1處添加一項(xiàng)’ttt’
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(1,0,'ttt'); console.log(fruits); //["Banana", 'ttt', "Orange", "Apple", "Mango"];
向數(shù)組中間添加元素
var items = ["1", "2", "3", "4"]; items.splice(items.length / 2, 0, "hello"); console.log(items); // ["1", "2", "hello", "3", "4"]
使用splice()修改數(shù)據(jù),動(dòng)態(tài)渲染dom不更新
當(dāng) Vue.js 用 v-for 正在更新已渲染過(guò)的元素列表時(shí),它默認(rèn)用“就地復(fù)用”策略。如果數(shù)據(jù)項(xiàng)的順序被改變,Vue 將不會(huì)移動(dòng) DOM 元素來(lái)匹配數(shù)據(jù)項(xiàng)的順序, 而是簡(jiǎn)單復(fù)用此處每個(gè)元素,并且確保它在特定索引下顯示已被渲染過(guò)的每個(gè)元素。
為了給 Vue 一個(gè)提示,以便它能跟蹤每個(gè)節(jié)點(diǎn)的身份,從而重用和重新排序現(xiàn)有元素,你需要為每項(xiàng)提供一個(gè)唯一 key 屬性。理想的 key 值是每項(xiàng)都有的唯一 id。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue el-table表頭上引入組件不能實(shí)時(shí)傳參解決方法分析
這篇文章主要介紹了Vue el-table表頭上引入組件不能實(shí)時(shí)傳參解決方法,總的來(lái)說(shuō)這并不是一道難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達(dá)的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過(guò)程。希望通過(guò)這道題能給你帶來(lái)一種解題優(yōu)化的思路2022-11-11element tree懶加載:load="loadNode"只觸發(fā)一次的解決方案
本文主要介紹了element tree懶加載:load="loadNode"只觸發(fā)一次的解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08詳解TypeScript+Vue 插件 vue-class-component的使用總結(jié)
這篇文章主要介紹了TypeScript+Vue 插件 vue-class-component的使用總結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02Vue-input框checkbox強(qiáng)制刷新問(wèn)題
這篇文章主要介紹了Vue-input框checkbox強(qiáng)制刷新問(wèn)題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04Vant?UI中van-collapse下拉折疊面板默認(rèn)展開(kāi)第一項(xiàng)的方法
之前做項(xiàng)目的時(shí)候,使用了Collapse折疊面板,下面這篇文章主要給大家介紹了關(guān)于Vant?UI中van-collapse下拉折疊面板默認(rèn)展開(kāi)第一項(xiàng)的相關(guān)資料,需要的朋友可以參考下2022-03-03基于vue.js實(shí)現(xiàn)側(cè)邊菜單欄
這篇文章主要為大家詳細(xì)介紹了基于vue.js實(shí)現(xiàn)側(cè)邊菜單欄的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03