vue數(shù)據(jù)雙向綁定的注意點(diǎn)
最近一個(gè)vue和element的項(xiàng)目中遇到了一個(gè)問題: 動態(tài)生成的對象進(jìn)行雙向綁定是失敗
直接貼代碼:
<el-form :model="addClass" :rules="rules" ref="addClass">
<el-form-item label="表單分類名稱" prop="NAME" :label-width="formLabelWidth">
<el-input v-model="addClass.NAME" auto-complete="off"></el-input>
</el-form-item>
<el-form-item label="表單分類描述" prop="DESCRIBE" :label-width="formLabelWidth">
<el-input type="textarea" autosize row=5 v-model="addClass.DESCRIBE" auto-complete="off"></el-input>
</el-form-item>
</el-form>
上面一個(gè)簡單的element的表單;addClass就是我要將數(shù)據(jù)綁定到的對象;他初始是一個(gè)空對象;我需要在其他地方讀取然后給他添加屬性,同時(shí)給表單進(jìn)行綁定。
在這個(gè)過程中就發(fā)現(xiàn),雙向綁定失敗了 , 而且也沒有報(bào)錯(cuò)。
我是通過obj.xxx = xxx;這種方法進(jìn)行綁定; 經(jīng)過測試發(fā)現(xiàn)雙向綁定并沒有實(shí)現(xiàn)。
解決方法:
參照 VUE官方文檔: https://cn.vuejs.org/v2/guide/reactivity.html ;
受現(xiàn)代 JavaScript 的限制(以及廢棄 Object.observe),Vue 不能檢測到對象屬性的添加或刪除。由于 Vue 會在初始化實(shí)例時(shí)對屬性執(zhí)行 getter/setter 轉(zhuǎn)化過程,所以屬性必須在 data 對象上存在才能讓 Vue 轉(zhuǎn)換它,這樣才能讓它是響應(yīng)的。例如:
var vm = new Vue({
data:{
a:1
}
})
// `vm.a` 是響應(yīng)的
vm.b = 2
// `vm.b` 是非響應(yīng)的
Vue 不允許在已經(jīng)創(chuàng)建的實(shí)例上動態(tài)添加新的根級響應(yīng)式屬性(root-level reactive property)。然而它可以使用 Vue.set(object, key, value) 方法將響應(yīng)屬性添加到嵌套的對象上:
Vue.set(vm.someObject, 'b', 2)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- vue.js數(shù)據(jù)綁定的方法(單向、雙向和一次性綁定)
- Vue.js實(shí)現(xiàn)雙向數(shù)據(jù)綁定方法(表單自動賦值、表單自動取值)
- Vue.js每天必學(xué)之?dāng)?shù)據(jù)雙向綁定
- Angular和Vue雙向數(shù)據(jù)綁定的實(shí)現(xiàn)原理(重點(diǎn)是vue的雙向綁定)
- vue.js使用v-model實(shí)現(xiàn)表單元素(input) 雙向數(shù)據(jù)綁定功能示例
- vue自定v-model實(shí)現(xiàn)表單數(shù)據(jù)雙向綁定問題
- vue數(shù)據(jù)雙向綁定原理解析(get & set)
- Vue數(shù)據(jù)雙向綁定原理及簡單實(shí)現(xiàn)方法
- 詳解vue中的父子傳值雙向綁定及數(shù)據(jù)更新問題
- Vue2.0/3.0雙向數(shù)據(jù)綁定的實(shí)現(xiàn)原理詳解
相關(guān)文章
Vue 實(shí)現(xiàn)監(jiān)聽窗口關(guān)閉事件,并在窗口關(guān)閉前發(fā)送請求
這篇文章主要介紹了Vue 實(shí)現(xiàn)監(jiān)聽窗口關(guān)閉事件,并在窗口關(guān)閉前發(fā)送請求,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
Vue+tracking.js 實(shí)現(xiàn)前端人臉檢測功能
這篇文章主要介紹了Vue+tracking.js 實(shí)現(xiàn)前端人臉檢測功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
Vue-Router2.X多種路由實(shí)現(xiàn)方式總結(jié)
下面小編就為大家分享一篇Vue-Router2.X多種路由實(shí)現(xiàn)方式總結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02
element-ui table span-method(行合并)的實(shí)現(xiàn)代碼
element-ui官網(wǎng)中關(guān)于行合并的例子是根據(jù)行號進(jìn)行合并的,這顯然不符合我們?nèi)粘i_發(fā)需求,因?yàn)橥ǔN覀僼able中的數(shù)據(jù)都是動態(tài)生成的,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-12-12
vue-router解決相同路徑跳轉(zhuǎn)報(bào)錯(cuò)的問題
這篇文章主要介紹了vue-router解決相同路徑跳轉(zhuǎn)報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04

