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