欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue2?element-ui?el-checkbox視圖不更新問題及解決

 更新時間:2024年12月26日 11:08:04   作者:木有名字就是最好的名字  
作者在開發(fā)過程中遇到了視圖不更新的問題,最終通過改變一個無關(guān)緊要的響應(yīng)式數(shù)據(jù)來解決,讓視圖發(fā)生改變

vue2 element-ui el-checkbox視圖不更新

今天在開發(fā)過程發(fā)現(xiàn)一個問題,如標題所描述的,我在更改了data(){return{}}里的數(shù)據(jù)后, 也就是對 el-checkbox 的 v-model 綁定了一個 data() 里面的數(shù)據(jù),與之對應(yīng)的視圖沒有發(fā)生變化

我之所以 斷定 我data() 里的數(shù)據(jù)發(fā)生了變化,而視圖沒有發(fā)生變化,是因為 在chrome 的 插件 vue devtools 中 確認了 data() 數(shù)據(jù)是發(fā)生了改變, 也就證明el-checkbox 的v-model綁定的boolean 值發(fā)生了改變,此時視圖應(yīng)該 按照 v-model="false" ==> v-model="true" 從 未勾選狀態(tài)==>勾選狀態(tài) 但是 頁面一直沒有更新。

在確認自己不是因為低級錯誤而導致的 視圖不更新后, 對該問題進行了 不同的處理

1: 百度: 使用 $set() 、使用froceUpdate() 這兩者都不起作用

既然 已經(jīng)明確了 數(shù)據(jù)是發(fā)生了變化,依賴數(shù)據(jù)的視圖沒有發(fā)生改變, 那么 可以通過 較為偏激的方法 用v-if="true" / v-if="false" 的方法 將組件銷毀再重新掛載, (此種方法過于 偏激,而且相對另類 不推薦使用)

既然有通過 v-if 的方法 強行讓 元素重新渲染,那么 是否可以利用 vue 的一些特性進行類似的操作呢?

我個人觀點

vue 響應(yīng)式 可以通過 數(shù)據(jù)驅(qū)動頁面的更新 加上 diff算法, 可以試著給 el-checkbox 組件 一個 無關(guān)緊要的屬性

例如 :

data-xxx=“響應(yīng)式數(shù)據(jù)” 通過更改 該響應(yīng)式數(shù)據(jù) 讓vue 在進行diff算法中,發(fā)現(xiàn)虛擬Dom el-checkbox 的其中一個 data-xxx 屬性發(fā)生變化,從而 讓其觸發(fā)該組件的 渲染,以達到 v-model 綁定的值改變 所對應(yīng)的 視圖發(fā)生變化。

  • 例子:
<el-checkbox v-model="list[index].obj[value].checked" :data-a="checked">
  • 偽代碼:
function changeValue(){
// 將 list[index].obj[value].checked 為 false 改為 true

this.list[index].obj[value].checked = true // 此時視圖 并沒有因為 數(shù)據(jù)的變化 而 從 未勾選變成勾選狀態(tài)

// 更改一個 無關(guān)緊要的 數(shù)值
this.checked = !this.checked // 此處 無論checked 是什么 都不影響 目的是讓vue 去重新渲染 el-checkbox 這個組件

}

總結(jié)

其實在一般的vue 開發(fā)中,如果 響應(yīng)式數(shù)據(jù) 不是那種 非常復雜的數(shù)據(jù)類型一般不會出現(xiàn)響應(yīng)式數(shù)據(jù)變化而視圖不更行的情況,

但 上述例子中 list是一個數(shù)組,數(shù)組里面有多個屬性,其中一個屬性為一個對象,而我們需要改變的值就是這個對象的其中一個屬性, 可能 在vue 的雙向綁定中,

由于 list 是一個相對復雜的數(shù)據(jù)類型,當深層次里的屬性發(fā)生了 改變, vue沒法做到 數(shù)據(jù)驅(qū)動 視圖更新,

當我們非常確認數(shù)據(jù)已經(jīng)更新了, 僅僅是視圖沒有發(fā)生變化,此時 要做的就是 能讓 視圖發(fā)生改變的操作 通過改變一個無關(guān)緊要的 響應(yīng)式數(shù)據(jù) 從而 讓 組件進行 重新渲染操作 無疑是一個 不錯的 解決方案

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue實現(xiàn)滑動解鎖功能

    vue實現(xiàn)滑動解鎖功能

    這篇文章主要為大家詳細介紹了vue實現(xiàn)滑動解鎖功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • el-tree樹組件懶加載(后端上千條數(shù)據(jù)前端進行處理)

    el-tree樹組件懶加載(后端上千條數(shù)據(jù)前端進行處理)

    本文主要介紹了el-tree樹組件懶加載(后端上千條數(shù)據(jù)前端進行處理),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • vuejs手把手教你寫一個完整的購物車實例代碼

    vuejs手把手教你寫一個完整的購物車實例代碼

    這篇文章主要介紹了vuejs-手把手教你寫一個完整的購物車實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 代替Vue?Cli的全新腳手架工具create?vue示例解析

    代替Vue?Cli的全新腳手架工具create?vue示例解析

    這篇文章主要為大家介紹了代替Vue?Cli的全新腳手架工具create?vue示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • vue中input框的禁用和可輸入問題

    vue中input框的禁用和可輸入問題

    這篇文章主要介紹了vue input框的禁用和可輸入問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 從vue-router看前端路由的兩種實現(xiàn)

    從vue-router看前端路由的兩種實現(xiàn)

    本文由淺入深觀摩vue-router源碼是如何通過hash與History interface兩種方式實現(xiàn)前端路由,介紹了相關(guān)原理,并對比了兩種方式的優(yōu)缺點與注意事項。最后分析了如何實現(xiàn)可以直接從文件系統(tǒng)加載而不借助后端服務(wù)器的Vue單頁應(yīng)用。
    2021-05-05
  • 一個可復用的vue分頁組件

    一個可復用的vue分頁組件

    這篇文章主要為大家詳細介紹了一個可復用的vue分頁組件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Vue項目中引入外部文件的方法(css、js、less)

    Vue項目中引入外部文件的方法(css、js、less)

    本篇文章主要介紹了Vue項目中引入外部文件的方法(css、js、less),非常具有實用價值,需要的朋友可以參考下
    2017-07-07
  • vue自定義指令實現(xiàn)v-tap插件

    vue自定義指令實現(xiàn)v-tap插件

    這篇文章主要為大家詳細介紹了vue自定義指令實現(xiàn)v-tap插件的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • vue大型項目之分模塊運行/打包的實現(xiàn)

    vue大型項目之分模塊運行/打包的實現(xiàn)

    這篇文章主要介紹了vue大型項目之分模塊運行/打包的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09

最新評論