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

vue組件值變化但不刷新強(qiáng)制組件刷新的問題

 更新時(shí)間:2022年06月29日 11:16:22   作者:騰夢  
這篇文章主要介紹了vue組件值變化但不刷新強(qiáng)制組件刷新的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

組件值變化但不刷新強(qiáng)制組件刷新

在調(diào)用組件的時(shí)候,如果數(shù)據(jù)中只是某個(gè)屬性變化(比如id)變化,在vue開發(fā)工具中看到變量值變化,但是組件上的數(shù)據(jù)就是不刷新

bug復(fù)現(xiàn)

引用組件

<bulletMenuVue v-else-if="sNode.type == 'cBomb'" :data="sNode" />

sNode數(shù)據(jù)結(jié)構(gòu)

{
? ? "id": "gun2m2c4",
? ? "label": "子彈4",
? ? "type": "cBomb",
? ? "data": {
? ? ? ? "angle": 50,
? ? ? ? "mwr": {
? ? ? ? ? ? "checked": false,
? ? ? ? ? ? "band": 50,
? ? ? ? ? ? "dbi": 50
? ? ? ? },
? ? ? ? "slr": {
? ? ? ? ? ? "checked": false,
? ? ? ? ? ? "length": 50,
? ? ? ? ? ? "power": 50,
? ? ? ? ? ? "facula": 50,
? ? ? ? ? ? "size": 50
? ? ? ? },
? ? ? ? "irDetector": {
? ? ? ? ? ? "checked": false,
? ? ? ? ? ? "band": 50,
? ? ? ? ? ? "dbi": 50
? ? ? ? },
? ? ? ? "mwd": {
? ? ? ? ? ? "checked": false,
? ? ? ? ? ? "band": 50,
? ? ? ? ? ? "direction": 50,
? ? ? ? ? ? "angle": 50
? ? ? ? }
? ? }
}

當(dāng)鼠標(biāo)點(diǎn)擊切換子彈過快時(shí),會出現(xiàn)子組件不刷新的情況

解決

先看值有沒有return出去!如果沒有return,子組件也是不響應(yīng)的,watchEffect甚至監(jiān)聽不到

我們將提供一個(gè)key屬性,以便 Vue 知道特定的組件與特定的數(shù)據(jù)片段相關(guān)聯(lián)。如果key保持不變,則不會更改組件,但是如果key發(fā)生更改,Vue 就會知道應(yīng)該刪除舊組件并創(chuàng)建新組件。

我們可以將key分配給子組件,想重新渲染組件時(shí),更新該key即可。這應(yīng)該是強(qiáng)制Vue重新渲染組件的最佳方法

具體一點(diǎn)

把子彈的id當(dāng)做key給組件,當(dāng)作為key的id發(fā)生變化時(shí),Vue將知道它必須銷毀組件并創(chuàng)建一個(gè)新組件。我們得到的是一個(gè)子組件,它將重新初始化自身并“重置”其狀態(tài)。

<bulletMenuVue v-else-if="sNode.type == 'cBomb'" :data="sNode" :key="sNode.id" />

強(qiáng)制刷新vue組件

例如我有一個(gè)表格,每次點(diǎn)擊其中的一行彈出一個(gè)窗口,展示對應(yīng)的信息,彈窗如下

<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" top="0">
? ?<UserPage v-if="isShow" :userid="userid"/>
</el-dialog>

可見彈窗里面加載的其實(shí)是一個(gè)組件,組件通過判斷當(dāng)前點(diǎn)擊行的id來進(jìn)行不同數(shù)據(jù)的渲染

問題

發(fā)現(xiàn),其實(shí)每次彈窗出來的數(shù)據(jù)都是第一次加載的數(shù)據(jù),原因是根本沒有重新加載,而只是將dialog里面的組件進(jìn)行展示和隱藏而已

解決 – 強(qiáng)制刷新組件

給點(diǎn)擊時(shí)間里面加上強(qiáng)制刷新組件的代碼,如下

//methods中方法
handleCreate(row) {
? this.isShow = false//銷毀組件
? this.$nextTick(() => {
? ?? ?this.isShow = true//重建組件
? })
? //控制dialog的顯示
? this.dialogStatus = 'create'
? this.dialogFormVisible = true
? //傳參
? this.userid = row.approvalId.toString()
}

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

相關(guān)文章

  • Vue使用screenfull實(shí)現(xiàn)全屏效果

    Vue使用screenfull實(shí)現(xiàn)全屏效果

    這篇文章主要為大家詳細(xì)介紹了Vue使用screenfull實(shí)現(xiàn)全屏,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • vue的toast彈窗組件實(shí)例詳解

    vue的toast彈窗組件實(shí)例詳解

    本文通過實(shí)例給大家講解了vue的toast彈窗組件功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-05-05
  • vue.js input框之間賦值方法

    vue.js input框之間賦值方法

    今天小編就為大家分享一篇vue.js input框之間賦值方法具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • 詳解如何使用Vuex實(shí)現(xiàn)Vue后臺管理中的角色鑒權(quán)

    詳解如何使用Vuex實(shí)現(xiàn)Vue后臺管理中的角色鑒權(quán)

    最近參與了公司一個(gè)新的B端項(xiàng)目的研發(fā),從無到有搭建項(xiàng)目的過程中,遇到了關(guān)于項(xiàng)目鑒權(quán)的問題,這篇文章主要給大家介紹了關(guān)于如何使用Vuex實(shí)現(xiàn)Vue后臺管理中的角色鑒權(quán)的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • 詳解Vue監(jiān)聽數(shù)據(jù)變化原理

    詳解Vue監(jiān)聽數(shù)據(jù)變化原理

    本篇文章主要介紹了Vue監(jiān)聽數(shù)據(jù)變化,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • Vue 頁面切換效果之 BubbleTransition(推薦)

    Vue 頁面切換效果之 BubbleTransition(推薦)

    使用 vue,vue-router,animejs 來講解如何實(shí)現(xiàn)vue頁面切換效果之 BubbleTransition,需要的朋友參考下吧
    2018-04-04
  • 解決vue.js this.$router.push無效的問題

    解決vue.js this.$router.push無效的問題

    今天小編就為大家分享一篇解決vue.js this.$router.push無效的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • Vue解析剪切板圖片并實(shí)現(xiàn)發(fā)送功能

    Vue解析剪切板圖片并實(shí)現(xiàn)發(fā)送功能

    這篇文章主要介紹了Vue解析剪切板圖片并實(shí)現(xiàn)發(fā)送功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • vue中標(biāo)簽自定義屬性的使用及說明

    vue中標(biāo)簽自定義屬性的使用及說明

    這篇文章主要介紹了vue中標(biāo)簽自定義屬性的使用及說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • vue如何獲取自定義元素屬性參數(shù)值的方法

    vue如何獲取自定義元素屬性參數(shù)值的方法

    這篇文章主要介紹了vue如何獲取自定義元素屬性參數(shù)值的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評論