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

vue強(qiáng)制刷新組件的三種方法

 更新時(shí)間:2024年04月12日 09:38:55   作者:她說她一如既往的愛我  
在Vue中,強(qiáng)制刷新組件通常涉及到以下幾種方法,本文給大家列出了常見的三種vue強(qiáng)制刷新組件的方法,感興趣的朋友跟隨小編一起看看吧

通過組件的key值來刷新

(當(dāng)某個(gè)組件的key變化后,組件都會(huì)被重新渲染一遍)

<template>
	<el-table
	        :data="data"
	        :key="refresh"
	      >
	      ...
	</el-table>
</template>
<script lang="ts">
import { Component, Vue, Watch } from 'vue-property-decorator'
@Component({})
export default class extends Vue {
	refresh= true
	@Watch('data')
	watchData() {
	  this.refresh= !this.refresh
	}
}
</script>

還有通過if來刷新

(當(dāng)v-if的值發(fā)生變化時(shí),組件都會(huì)被重新渲染一遍)

<template>
	<el-table
	        v-if="refresh"
	        :data="data"
	      >
	      ...
	</el-table>
</template>
<script lang="ts">
import { Component, Vue, Watch } from 'vue-property-decorator'
@Component({})
export default class extends Vue {
	refresh = true
	// 監(jiān)視data是否發(fā)生變化
	@Watch('data')
	watchData() {
		// 移除組件
        this.refresh = false
        // this.$nextTick可實(shí)現(xiàn)在DOM 狀態(tài)更新后,執(zhí)行傳入的方法。
        this.$nextTick(() => {
        	// 重新渲染組件
            this.refresh = true
        })
	}
}
</script>

通過this $forceUpdate強(qiáng)制重新渲染

(如果要在組件內(nèi)部中進(jìn)行強(qiáng)制刷新,則可以調(diào)用this.$forceUpdate()強(qiáng)制重新渲染組件)

<template>
	<button @click="reflush()">刷新當(dāng)前組件</button>
</template>
<script lang="ts">
import { Component, Vue } from 'vue-property-decorator'
@Component({})
export default class extends Vue {
	reflush() {
	    this.$forceUpdate()
	}
}
</script>

擴(kuò)展:vue中tab切換時(shí)請(qǐng)求數(shù)據(jù)重復(fù)問題

問題場(chǎng)景

切換tab時(shí),會(huì)請(qǐng)求列表的接口,在then中進(jìn)行了數(shù)據(jù)處理(添加到list后面)

ps:list在不同的tab中時(shí)同一個(gè)

快速點(diǎn)擊tab切換時(shí),上一個(gè)tab的請(qǐng)求,會(huì)在當(dāng)前的tab的list中處理,導(dǎo)致數(shù)據(jù)不對(duì)

例如:

兩個(gè)tab:成功列表 & 失敗列表

點(diǎn)擊成功列表后,且請(qǐng)求未返回時(shí),點(diǎn)擊失敗列表:這個(gè)時(shí)候,失敗列表中會(huì)出現(xiàn)成功列表的數(shù)據(jù)

解決方案:

大概的代碼意思,不能直接復(fù)制運(yùn)行的,參考意思就行

data() {
    return {
      random: new Date().valueOf(),
      activeTab: 0,
      list: []
    };
}
watch: {
    activeTab: {
      handler(val) {
        this.random = new Date().valueOf()
        // 請(qǐng)求list
        this.getList()
      },
    },
}
methods: {
    getList() {
        const random = this.random
        api().then((list) => {
            // 判斷處理數(shù)據(jù)時(shí)的tab是不是沒變過
            if (this.random != random) return
            this.list = this.list.concat(list)
        })
    }
}

這個(gè)只是想到的一個(gè)比較簡(jiǎn)單偷懶的方法,并不是項(xiàng)目中實(shí)現(xiàn)的最優(yōu)方案。結(jié)合自己項(xiàng)目情況考慮為好。

axios 取消請(qǐng)求相對(duì)而言,比較麻煩,懶,小項(xiàng)目不想寫

到此這篇關(guān)于vue強(qiáng)制刷新組件的3種方法的文章就介紹到這了,更多相關(guān)vue強(qiáng)制刷新組件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue3 el-select懶加載以及自定義指令方式

    vue3 el-select懶加載以及自定義指令方式

    這篇文章主要介紹了vue3 el-select懶加載以及自定義指令方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Vue input輸入框中的值如何變成黑點(diǎn)問題

    Vue input輸入框中的值如何變成黑點(diǎn)問題

    這篇文章主要介紹了Vue input輸入框中的值如何變成黑點(diǎn)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vux-scroller實(shí)現(xiàn)移動(dòng)端上拉加載功能過程解析

    vux-scroller實(shí)現(xiàn)移動(dòng)端上拉加載功能過程解析

    這篇文章主要介紹了vux-scroller實(shí)現(xiàn)移動(dòng)端上拉加載功能過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • vuex實(shí)現(xiàn)登錄狀態(tài)的存儲(chǔ),未登錄狀態(tài)不允許瀏覽的方法

    vuex實(shí)現(xiàn)登錄狀態(tài)的存儲(chǔ),未登錄狀態(tài)不允許瀏覽的方法

    下面小編就為大家分享一篇vuex實(shí)現(xiàn)登錄狀態(tài)的存儲(chǔ),未登錄狀態(tài)不允許瀏覽的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • vue內(nèi)置組件Transition的示例詳解

    vue內(nèi)置組件Transition的示例詳解

    這篇文章主要介紹了vue內(nèi)置組件Transition的詳解,簡(jiǎn)單地說,就是當(dāng)元素發(fā)生變化,比如消失、顯示時(shí),添加動(dòng)畫讓它更自然過渡,它是vue內(nèi)置組件,不需要引入注冊(cè)就可以直接使用,本文通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • axios+vue請(qǐng)求時(shí)攜帶cookie的方法實(shí)例

    axios+vue請(qǐng)求時(shí)攜帶cookie的方法實(shí)例

    做項(xiàng)目時(shí)遇到一個(gè)需求,后端需要在接口請(qǐng)求時(shí),對(duì)用戶登陸狀態(tài)進(jìn)行判斷,需要在請(qǐng)求時(shí)攜帶Cookie,下面這篇文章主要給大家介紹了關(guān)于axios+vue請(qǐng)求時(shí)攜帶cookie的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • vue如何使用pdf.js實(shí)現(xiàn)在線查看pdf文件功能

    vue如何使用pdf.js實(shí)現(xiàn)在線查看pdf文件功能

    PDF.js是一個(gè)開源的JavaScript庫,用于在網(wǎng)頁上渲染和顯示PDF文件,在Vue中使用PDF.js來預(yù)覽PDF文件是很常見的需求,這篇文章主要給大家介紹了關(guān)于vue如何使用pdf.js實(shí)現(xiàn)在線查看pdf文件功能的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • element-UI el-table修改input值視圖不更新問題

    element-UI el-table修改input值視圖不更新問題

    這篇文章主要介紹了element-UI el-table修改input值視圖不更新問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Vue實(shí)現(xiàn)動(dòng)態(tài)添加或者刪除對(duì)象和對(duì)象數(shù)組的操作方法

    Vue實(shí)現(xiàn)動(dòng)態(tài)添加或者刪除對(duì)象和對(duì)象數(shù)組的操作方法

    這篇文章主要介紹了在Vue項(xiàng)目中實(shí)現(xiàn)動(dòng)態(tài)添加或者刪除對(duì)象和對(duì)象數(shù)組的操作方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • vue實(shí)現(xiàn)樹形菜單效果

    vue實(shí)現(xiàn)樹形菜單效果

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)樹形菜單效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評(píng)論