国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue緩存的keepalive頁面刷新數據的方法

2019-11-19 11:43:26
字體:
來源:轉載
供稿:網友

用到這個的業務場景是這樣的:

a頁面點擊新建列表按鈕進入到新建的頁面b,填寫b頁面并點擊b頁面確認添加按鈕,把這些數據帶到a頁面,填充到列表(數組),可以添加多條,

點擊這條的時候進入到編輯頁面,確認修改之后,回退到a頁面,a頁面需要更新這條數據

實現這個功能的時候,由于是路由頁面之間的跳轉,首先想到的方案有幾個:1. 用sessionStorage本地存儲;2. 用路由參數帶過去;3. 用兄弟組件傳值

由于是添加完之后如果按回退是需要退出整個頁面,如果用路由跳轉,會出現回退到編輯頁面了,所以這個方法首先排除

用本地存儲的時候,如果不加回退也會吧之前存的歷史記錄給帶過來,所以最終選用了第三種方法

由于a頁面需要緩存,所以用到了路由頁面的緩存

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, 所以頁面在再次加載的時候是不會觸發created而是會觸發activated的

所以接收數據,重置數據要寫到activated方法下

a頁面接收

更改用Vue.set()方法

調用方法:Vue.set( target, key, value )

target:要更改的數據源(可以是對象或者數組)

key:要更改的具體數據

value :重新賦的值

activated(){    let that = this    Self$on('detailShow',(data)=>{ // 接收      if(!dataisEdit){ // 是新增還是編輯--這個是在跳轉的時候帶過去的--新增/編輯頁面也會根據這個顯示內容有所區別        thataddParamspush(data)        thataddParams = Arrayfrom(new Set(thataddParamsSubsidyInfos)) // 為避免重復去個重      }else{         // thataddParams[thateditIndex] = data // 剛開始想通過直接修改,后來發現不行,因為頁面是有緩存的,顯示的還是未修改之前的        Vueset(thataddParams,thateditIndex,data) // 用set方法修改數據      }    })  },

b頁面提交(新增/編輯)

submit(){    if(!thisdetailValidate()){ // 這個是表單校驗,如果不通過不然提交     return;    }else{     Self$emit('detailShow',thisaddParams) // 事件分發     this$routerback();    }   }

vue 緩存的keepalive頁面刷新數據的話,這個主要還是用到了Vue.set( target, key, value )方法

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南溪县| 磐石市| 金塔县| 德州市| 荆门市| 家居| 东方市| 洞口县| 广元市| 保亭| 视频| 房产| 重庆市| 涞水县| 长子县| 抚宁县| 靖远县| 东兰县| 东宁县| 蒲城县| 五大连池市| 芷江| 丽水市| 拉孜县| 阜城县| 濉溪县| 文昌市| 汤阴县| 阳西县| 华阴市| 潞西市| 大理市| 林州市| 朔州市| 洛宁县| 丁青县| 时尚| 黎城县| 汤原县| 文安县| 阿拉善左旗|