亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue頁面如何及時(shí)更新頁面數(shù)據(jù)問題

 更新時(shí)間:2023年05月24日 14:56:49   作者:Greg_Zhong  
這篇文章主要介紹了vue頁面如何及時(shí)更新頁面數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue頁面如何及時(shí)更新頁面數(shù)據(jù)

什么是Vue單頁面

代碼層面,可以將一個(gè)頁面HTML、JS、CSS代碼統(tǒng)一寫在一個(gè) .Vue文件里。

頁面展示:通過控制當(dāng)前頁面路徑#號(hào)后面的路由名稱,來達(dá)到控制(切換)不同頁面的展示效果,請(qǐng)記?。哼@樣顯隱方式~頁面不會(huì)重新請(qǐng)求api。

補(bǔ)充:(凡事有利也有弊)對(duì)于頁面不需要二次刷新來說,不重新請(qǐng)求api,節(jié)約服務(wù)器資源,用戶在界面上體驗(yàn)度好,但是,如果某個(gè)單頁面需要二次加載(及時(shí)更新數(shù)據(jù)~比如:增刪修改后),此時(shí)頁面不會(huì)重新請(qǐng)求api?。槭裁??在看一遍我前面的文字概述?。?/p>

vue頁面為什么~需要重新渲染頁面數(shù)據(jù)?

vue中,我們一般將請(qǐng)求方法,放在mounted( )中,但是只有第一次頁面加載會(huì)觸發(fā)mounted(),而后續(xù)是不會(huì)觸發(fā)這個(gè)生命周期函數(shù)的!,若此時(shí)你做完增刪修操作,數(shù)據(jù)怎么更新,怎么辦?

如何讓單頁面二次(后續(xù))訪問頁面,數(shù)據(jù)渲染(更新)

使用頁面的watch偵聽事件,監(jiān)控路由發(fā)生改變,則請(qǐng)求需要更新數(shù)據(jù)的方法(函數(shù)),如下圖:這里更新數(shù)據(jù)的方法是querySalaryList()。 

如圖:1 和 2 前者,就是監(jiān)聽路由發(fā)生改變,就觸發(fā)!導(dǎo)致其他頁面也會(huì)受到影響,(我第一次使用時(shí),用的就是1方式,導(dǎo)致我請(qǐng)求里的彈框,在跳轉(zhuǎn)其他頁面都出現(xiàn),這是非常不好的?。。。┰趺崔k,就使用 2 方式,當(dāng)獲取路由是特定路由,才觸發(fā)事件…

vue A頁面更新B頁面數(shù)據(jù)

應(yīng)用場景:全局定時(shí)刷新訂單狀態(tài),等有待處理訂單時(shí),進(jìn)行彈框提示,同時(shí)如果在訂單列表的話,也有待處理訂單狀態(tài),進(jìn)行列表數(shù)據(jù)更新。

通過vuex 獲取被更新頁面的this實(shí)例化實(shí)現(xiàn)

store/modules新建個(gè)文件,我這里命名為:updateOrderList.js (獲取指定頁面的this實(shí)例化對(duì)象)
const state = function() {
? return {
? ? pageThis: '', // 組件實(shí)例
? ? pagePaths: ['/canteen/orderManage/list'], // 需要更新數(shù)據(jù)的組件路徑
? ? timerTime: 1000 * 30,
? ? timerAction: null // 定時(shí)器
? }
}
const mutations = {
? // 更新pageThis
? updateThisMutation(state, that) {
? ? console.log(state)
? ? state.pageThis = that
? }
}
const actions = {
? // 獲取組件this
? getComponentThisAction(context, that) {
? ? const path = that.$route.path
? ? const pagePaths = context.state.pagePaths
? ? if (pagePaths.includes(path)) {
? ? ? context.commit('updateThisMutation', that)
? ? ? if (context.state.timerAction) {
? ? ? ? return
? ? ? }
? ? }
? }
}
export default {
? namespaced: true,
? state: state,
? mutations: mutations,
? actions: actions
}

2.store/index.js下引入該文件:

import updateOrderList from './modules/updateOrderList'
const store = new Vuex.Store({
?? ?updateOrderList
})

3.在需要更新的頁面進(jìn)行vuex方法引用(我這邊定義為orderManage.vue文件):

import { mapActions } from 'vuex'
mounted() {
? this.getComponentThisAction(this) // 調(diào)用vuex方法用于獲取實(shí)例化
},
beforeDestroy() {
? ? this.getComponentThisAction('') // 離開頁面時(shí)銷毀實(shí)例化
},
methods: {
? ? ...mapActions('updateOrderList', ['getComponentThisAction'])
})

4.在需要點(diǎn)擊更新的地方進(jìn)調(diào)用(我這邊放在了側(cè)邊欄)

import store from '@/store'
mounted() {
?? ?this.loadNewOrderData()
},
methods: {
? loadNewOrderData() {
? ? setTimeout(() => {
? ? ? this.$message({
? ? ? ? message: '數(shù)據(jù)更新了'
? ? ? })
? ? ? const pageThis = store.state.updateOrderList.pageThis
? ? ? if (pageThis && pageThis.$route.path === '/canteen/orderManage/list') {
? ? ? ? pageThis.getOrderList(pageThis.currentPage)
? ? ? }
? ? ? this.loadNewOrderData()
? ? }, 5000)
? }
}

總結(jié)

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

相關(guān)文章

  • vue中如何給el-table-column添加指定列的點(diǎn)擊事件

    vue中如何給el-table-column添加指定列的點(diǎn)擊事件

    elementui中提供了點(diǎn)擊行處理事件,下面這篇文章主要給大家介紹了關(guān)于vue中如何給el-table-column添加指定列的點(diǎn)擊事件,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • 如何手寫一個(gè)簡易的 Vuex

    如何手寫一個(gè)簡易的 Vuex

    這篇文章主要介紹了如何手寫一個(gè)簡易的 Vuex,幫助大家更好的理解和學(xué)習(xí)vue,感興趣的朋友可以了解下
    2020-10-10
  • Vuex之理解Store的用法

    Vuex之理解Store的用法

    本篇文章主要介紹了Vuex之理解Store的用法,Store類就是存儲(chǔ)數(shù)據(jù)和管理數(shù)據(jù)方法的倉庫,實(shí)現(xiàn)方式是將數(shù)據(jù)和方法已對(duì)象形式傳入其實(shí)例中
    2017-04-04
  • Vue3新增時(shí)自動(dòng)獲取當(dāng)前時(shí)間的操作方法

    Vue3新增時(shí)自動(dòng)獲取當(dāng)前時(shí)間的操作方法

    這篇文章主要介紹了Vue3新增時(shí)自動(dòng)獲取當(dāng)前時(shí)間的操作方法,本文通過實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • Vuex Store 數(shù)據(jù)在頁面刷新后丟失的解決方法

    Vuex Store 數(shù)據(jù)在頁面刷新后丟失的解決方法

    當(dāng)我們使用 Vue.js 和 Vuex 進(jìn)行狀態(tài)管理時(shí),一個(gè)常見的問題是頁面刷新會(huì)導(dǎo)致 Vuex store 中的數(shù)據(jù)丟失,本文將詳細(xì)介紹解決 Vuex Store 數(shù)據(jù)在頁面刷新后丟失的方法,感興趣的朋友一起看看吧
    2024-08-08
  • Vue使用ElementUI動(dòng)態(tài)修改table單元格背景顏色或文本顏色

    Vue使用ElementUI動(dòng)態(tài)修改table單元格背景顏色或文本顏色

    本文主要介紹了Vue使用ElementUI動(dòng)態(tài)修改table單元格背景顏色或文本顏色,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • vue+express+jwt持久化登錄的方法

    vue+express+jwt持久化登錄的方法

    這篇文章主要介紹了vue+express+jwt持久化登錄的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • vue自定義switch開關(guān)組件,實(shí)現(xiàn)樣式可自行更改

    vue自定義switch開關(guān)組件,實(shí)現(xiàn)樣式可自行更改

    今天小編就為大家分享一篇vue自定義switch開關(guān)組件,實(shí)現(xiàn)樣式可自行更改,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • vue3 數(shù)組清空與重新賦值的操作代碼

    vue3 數(shù)組清空與重新賦值的操作代碼

    這篇文章主要介紹了vue3 數(shù)組清空與重新賦值的操作代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • vue.js實(shí)現(xiàn)圖片壓縮封裝方法

    vue.js實(shí)現(xiàn)圖片壓縮封裝方法

    這篇文章主要介紹了vue.js實(shí)現(xiàn)圖片壓縮封裝方法,包括全局main.js引入方法,通過引入imgupload方法結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05

最新評(píng)論