vue中this.$set()的基本用法實(shí)例
1、this.$set()的作用
向響應(yīng)式對象中添加一個(gè)屬性,并確保這個(gè)新屬性同樣是響應(yīng)式的,且觸發(fā)視圖更新。 this.$set()用于向響應(yīng)式對象上添加新屬性,因?yàn)?Vue 無法探測普通的新增屬性。
簡單來說:就是我們在methods中給數(shù)據(jù)添加了一個(gè)屬性,我們能從控制臺(tái)能打印出來,但是視圖并沒有及時(shí)更新,所以無法顯示,但是借助于this.$set()方法我們就能成功的解決這個(gè)問題了,不僅能從控制臺(tái)打印出來我們想要的值,而且相應(yīng)的值也能實(shí)時(shí)刷新視圖。
2、this.$set()的語法
this.$set(target, propertyName/index, value)
(1)target: 要更改的數(shù)據(jù)源(可以是一個(gè)對象或者數(shù)組)
(2)propertyName/index: 要更改的具體數(shù)據(jù) (索引)
(3)value: 重新賦的值(any)
3、this.$set()的簡單案例
(1)前端代碼:
<el-form> <el-form-item label="用戶地址" prop="aloWhTo"> <el-select v-model="form.aloWhTo" @change="testConsistent" placeholder="請選擇轉(zhuǎn)入倉庫" readonly filterable style="width:95%" > <el-option v-for="item in WarehouseOptions" :key="item.whId" :label="item.whName" :value="item.whId"> </el-option> </el-select> </el-form-item> </el-form> <el-button type="primary" @click="handClick()">更改數(shù)據(jù) </el-button>
(2)當(dāng)我們點(diǎn)擊修改數(shù)據(jù)之后,我們會(huì)發(fā)現(xiàn)控制臺(tái)的信息變化了,但是下拉框中的數(shù)據(jù)沒有發(fā)生變化。
問題分析:當(dāng)vue的data里邊聲明或者已經(jīng)賦值過的對象或者數(shù)組(數(shù)組里邊的值是對象)時(shí),向?qū)ο笾刑砑有碌膶傩?,如果更新此屬性的值,是不?huì)更新視圖的。
handClick(){ //不起作用 this.WarehouseOptions[0] = { whId:'4',whName:'數(shù)據(jù)是否修改'} // let item = { whId:'4',whName:'數(shù)據(jù)是否修改'} //此時(shí)對象的值更改了,但是視圖沒有更新 // this.$set(this.WarehouseOptions,0,item) console.log("測試 ") console.log(this.WarehouseOptions[0]) },
(3)當(dāng)我們采用this.$set()方法之后,問題解決。
handClick(){ //不起作用 //this.WarehouseOptions[0] = { whId:'4',whName:'數(shù)據(jù)是否修改'} let item = { whId:'4',whName:'數(shù)據(jù)是否修改'} //此時(shí)對象的值更改了,但是視圖沒有更新 this.$set(this.WarehouseOptions,0,item) console.log("測試 ") console.log(this.WarehouseOptions[0]) },
4、this.$set()的應(yīng)用場景
對于數(shù)組,對象,集合都可以用,比如在表格里面進(jìn)行嵌套,可以根據(jù)索引進(jìn)行修改并及時(shí)進(jìn)行刷新?。?!
大家可以參考我這篇博客中的案例強(qiáng)化一下對this.$set()的理解和認(rèn)識?。?/p>
el-table+el-tree+el-select動(dòng)態(tài)選擇對應(yīng)值:
http://chabaoo.cn/article/272773.htm
總結(jié)
到此這篇關(guān)于vue中this.$set()的基本用法實(shí)例的文章就介紹到這了,更多相關(guān)vue this.$set()用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue-admin-template模板添加tagsview的實(shí)現(xiàn)
本文主要介紹了vue-admin-template模板添加tagsview的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04Vue中@click.stop與@click.prevent、@click.native使用
這篇文章主要介紹了Vue中@click.stop與@click.prevent、@click.native使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08vue3.0+vite2實(shí)現(xiàn)動(dòng)態(tài)異步組件懶加載
學(xué)了vue寫項(xiàng)目這么久,忽然發(fā)現(xiàn)路由懶加載的寫法,節(jié)省了加載所有路由的時(shí)間。本文主要介紹了vue3.0+vite2實(shí)現(xiàn)動(dòng)態(tài)異步組件懶加載,感興趣的可以了解一下2021-06-06vue實(shí)現(xiàn)右上角時(shí)間顯示實(shí)時(shí)刷新
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)右上角時(shí)間顯示實(shí)時(shí)刷新,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10vue實(shí)現(xiàn)給某個(gè)數(shù)據(jù)字段添加顏色
這篇文章主要介紹了vue實(shí)現(xiàn)給某個(gè)數(shù)據(jù)字段添加顏色方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03vue使用canvas實(shí)現(xiàn)移動(dòng)端手寫簽名
這篇文章主要為大家詳細(xì)介紹了基于vue使用canvas實(shí)現(xiàn)移動(dòng)端手寫簽名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09