vue緩存的keepalive頁(yè)面刷新數(shù)據(jù)的方法
用到這個(gè)的業(yè)務(wù)場(chǎng)景是這樣的:
a頁(yè)面點(diǎn)擊新建列表按鈕進(jìn)入到新建的頁(yè)面b,填寫(xiě)b頁(yè)面并點(diǎn)擊b頁(yè)面確認(rèn)添加按鈕,把這些數(shù)據(jù)帶到a頁(yè)面,填充到列表(數(shù)組),可以添加多條,
點(diǎn)擊這條的時(shí)候進(jìn)入到編輯頁(yè)面,確認(rèn)修改之后,回退到a頁(yè)面,a頁(yè)面需要更新這條數(shù)據(jù)
實(shí)現(xiàn)這個(gè)功能的時(shí)候,由于是路由頁(yè)面之間的跳轉(zhuǎn),首先想到的方案有幾個(gè):1. 用sessionStorage本地存儲(chǔ);2. 用路由參數(shù)帶過(guò)去;3. 用兄弟組件傳值
由于是添加完之后如果按回退是需要退出整個(gè)頁(yè)面,如果用路由跳轉(zhuǎn),會(huì)出現(xiàn)回退到編輯頁(yè)面了,所以這個(gè)方法首先排除
用本地存儲(chǔ)的時(shí)候,如果不加回退也會(huì)吧之前存的歷史記錄給帶過(guò)來(lái),所以最終選用了第三種方法
由于a頁(yè)面需要緩存,所以用到了路由頁(yè)面的緩存
router.js
{path: '/a',name: 'a',component: a,meta: {keepAlive: true}},
App.vue
<template> <div id="app"> <keep-alive> <router-view v-if="$routemetakeepAlive"></router-view> </keep-alive> <router-view v-if="!$routemetakeepAlive"></router-view> </div> </template>
由于用到了keepalive, 所以頁(yè)面在再次加載的時(shí)候是不會(huì)觸發(fā)created而是會(huì)觸發(fā)activated的
所以接收數(shù)據(jù),重置數(shù)據(jù)要寫(xiě)到activated方法下
a頁(yè)面接收
更改用Vue.set()方法
調(diào)用方法:Vue.set( target, key, value )
target:要更改的數(shù)據(jù)源(可以是對(duì)象或者數(shù)組)
key:要更改的具體數(shù)據(jù)
value :重新賦的值
activated(){ let that = this Self$on('detailShow',(data)=>{ // 接收 if(!dataisEdit){ // 是新增還是編輯--這個(gè)是在跳轉(zhuǎn)的時(shí)候帶過(guò)去的--新增/編輯頁(yè)面也會(huì)根據(jù)這個(gè)顯示內(nèi)容有所區(qū)別 thataddParamspush(data) thataddParams = Arrayfrom(new Set(thataddParamsSubsidyInfos)) // 為避免重復(fù)去個(gè)重 }else{ // thataddParams[thateditIndex] = data // 剛開(kāi)始想通過(guò)直接修改,后來(lái)發(fā)現(xiàn)不行,因?yàn)轫?yè)面是有緩存的,顯示的還是未修改之前的 Vueset(thataddParams,thateditIndex,data) // 用set方法修改數(shù)據(jù) } }) },
b頁(yè)面提交(新增/編輯)
submit(){ if(!thisdetailValidate()){ // 這個(gè)是表單校驗(yàn),如果不通過(guò)不然提交 return; }else{ Self$emit('detailShow',thisaddParams) // 事件分發(fā) this$routerback(); } }
vue 緩存的keepalive頁(yè)面刷新數(shù)據(jù)的話,這個(gè)主要還是用到了Vue.set( target, key, value )方法
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解基于Vue-cli搭建的項(xiàng)目如何和后臺(tái)交互
這篇文章主要介紹了詳解基于Vue-cli搭建的項(xiàng)目如何和后臺(tái)交互,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06vue常見(jiàn)路由跳轉(zhuǎn)的幾種方式小結(jié)
本文主要介紹了常見(jiàn)路由跳轉(zhuǎn)的幾種方式,主要介紹了四種常見(jiàn)方式,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09vue3+pinia用戶信息持久緩存token的問(wèn)題解決
本文主要介紹了vue3+pinia用戶信息持久緩存token的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Vue3 computed初始化獲取設(shè)置值實(shí)現(xiàn)示例
這篇文章主要為大家介紹了Vue3 computed初始化以及獲取值設(shè)置值實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10web項(xiàng)目開(kāi)發(fā)VUE的混入與繼承原理
這篇文章主要介紹了web項(xiàng)目開(kāi)發(fā)中VUE的混入與繼承原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-09-09vue element-ui el-table組件自定義合計(jì)(summary-method)的坑
這篇文章主要介紹了vue element-ui el-table組件自定義合計(jì)(summary-method)的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02