最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue keep-alive實踐總結(推薦)

 更新時間:2017年08月31日 11:42:53   作者:HanYif  
本篇文章主要介紹了Vue keep-alive實踐總結(推薦),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

<keep-alive>是Vue的內置組件,能在組件切換過程中將狀態(tài)保留在內存中,防止重復渲染DOM。

<keep-alive> 包裹動態(tài)組件時,會緩存不活動的組件實例,而不是銷毀它們。和 <transition> 相似,<keep-alive> 是一個抽象組件:它自身不會渲染一個 DOM 元素,也不會出現在父組件鏈中。

prop:

  • include: 字符串或正則表達式。只有匹配的組件會被緩存。
  • exclude: 字符串或正則表達式。任何匹配的組件都不會被緩存。

在2.1.0版本Vue中

常見用法:

// 組件
export default {
 name: 'test-keep-alive',
 data () {
 return {
  includedComponents: "test-keep-alive"
 }
 }
}
<keep-alive include="test-keep-alive">
 <!-- 將緩存name為test-keep-alive的組件 -->
 <component></component>
</keep-alive>

<keep-alive include="a,b">
 <!-- 將緩存name為a或者b的組件,結合動態(tài)組件使用 -->
 <component :is="view"></component>
</keep-alive>

<!-- 使用正則表達式,需使用v-bind -->
<keep-alive :include="/a|b/">
 <component :is="view"></component>
</keep-alive>

<!-- 動態(tài)判斷 -->
<keep-alive :include="includedComponents">
 <router-view></router-view>
</keep-alive>

<keep-alive exclude="test-keep-alive">
 <!-- 將不緩存name為test-keep-alive的組件 -->
 <component></component>
</keep-alive>

結合router,緩存部分頁面

使用$route.meta的keepAlive屬性:

<keep-alive>
 <router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>

需要在router中設置router的元信息meta:

//...router.js
export default new Router({
 routes: [
 {
  path: '/',
  name: 'Hello',
  component: Hello,
  meta: {
  keepAlive: false // 不需要緩存
  }
 },
 {
  path: '/page1',
  name: 'Page1',
  component: Page1,
  meta: {
  keepAlive: true // 需要被緩存
  }
 }
 ]
})

使用效果

以上面router的代碼為例:

<!-- Page1頁面 -->
<template>
 <div class="hello">
 <h1>Vue</h1>
 <h2>{{msg}}</h2>
 <input placeholder="輸入框"></input>
 </div>
</template>

<!-- Hello頁面 -->
<template>
 <div class="hello">
 <h1>{{msg}}</h1>
 </div>
</template>

(1) 在Page1頁面輸入框輸入“asd”,然后手動跳轉到Hello頁面;

(2) 回到Page1頁面發(fā)現之前輸入的"asd"依然保留,說明頁面信息成功保存在內存中;

​ 圖1 進入Page1頁面,并輸入"asd"

​ 圖2 跳轉到Hello

​ 圖3 返回Page1頁面,輸入框數據會被保留

當然,也可以通過動態(tài)設置route.meta的keepAlive屬性來實現其他需求,

借鑒一下vue-router 之 keep-alive這篇博客中的例子:

  • 首頁是A頁面
  • B頁面跳轉到A,A頁面需要緩存
  • C頁面跳轉到A,A頁面不需要被緩存

思路是在每個路由的beforeRouteLeave(to, from, next)鉤子中設置to.meta.keepAlive

A的路由:

{
 path: '/',
 name: 'A',
 component: A,
 meta: {
  keepAlive: true // 需要被緩存
 }
}
export default {
 data() {
  return {};
 },
 methods: {},
 beforeRouteLeave(to, from, next) {
   // 設置下一個路由的 meta
  to.meta.keepAlive = true; // B 跳轉到 A 時,讓 A 緩存,即不刷新
  next();
 }
};
export default {
 data() {
  return {};
 },
 methods: {},
 beforeRouteLeave(to, from, next) {
  // 設置下一個路由的 meta
  to.meta.keepAlive = false; // C 跳轉到 A 時讓 A 不緩存,即刷新
  next();
 }
};

親測有效哦~

keep-alive生命周期鉤子函數:activated、deactivated

使用<keep-alive>會將數據保留在內存中,如果要在每次進入頁面的時候獲取最新的數據,需要在activated階段獲取數據,承擔原來created鉤子中獲取數據的任務。

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

相關文章

  • 詳解Vue3怎么使用element-plus

    詳解Vue3怎么使用element-plus

    本文主要介紹了Vue3怎么使用element-plus,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • vue登錄注冊實例詳解

    vue登錄注冊實例詳解

    在本篇內容里小編給大家分享的是關于vue登錄注冊的相關實例內容以及寫法分析,有需要朋友們可以學習下。
    2019-09-09
  • vue中父子組件傳值,解決鉤子函數mounted只運行一次的操作

    vue中父子組件傳值,解決鉤子函數mounted只運行一次的操作

    這篇文章主要介紹了vue中父子組件傳值,解決鉤子函數mounted只運行一次的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Vue.js如何使用Socket.IO的示例代碼

    Vue.js如何使用Socket.IO的示例代碼

    這篇文章主要介紹了Vue.js如何使用Socket.IO的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • 基于vue的驗證碼組件的示例代碼

    基于vue的驗證碼組件的示例代碼

    這篇文章主要介紹了基于vue的驗證碼組件的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Vue3中Watch、Watcheffect、Computed的使用和區(qū)別解析

    Vue3中Watch、Watcheffect、Computed的使用和區(qū)別解析

    Watch、Watcheffect、Computed各有優(yōu)劣,選擇使用哪種方法取決于應用場景和需求,watch?適合副作用操作,watchEffect適合簡單的自動副作用管理,computed?適合聲明式的派生狀態(tài)計算,本文通過場景分析Vue3中Watch、Watcheffect、Computed的使用和區(qū)別,感興趣的朋友一起看看吧
    2024-07-07
  • 十分鐘封裝一個好用的axios步驟示例

    十分鐘封裝一個好用的axios步驟示例

    這篇文章主要為大家介紹了十分鐘封裝一個好用的axios步驟示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • vue+echarts實現多條折線圖

    vue+echarts實現多條折線圖

    這篇文章主要為大家詳細介紹了vue+echarts實現多條折線圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 在Vue中實現不刷新的iframe頁面的方案

    在Vue中實現不刷新的iframe頁面的方案

    在Vue項目中,我們可能會遇到這樣的需求:需要在應用中嵌入iframe頁面,并且要求在路由切換的過程中,iframe的內容不會被刷新,本文將介紹如何解決這個問題,并給出具體的實現方案,需要的朋友可以參考下
    2025-01-01
  • vue 子組件修改data或調用操作

    vue 子組件修改data或調用操作

    這篇文章主要介紹了vue 子組件修改data或調用操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08

最新評論

屏山县| 普安县| 屯昌县| 四川省| 武威市| 东辽县| 绩溪县| 内江市| 永修县| 临泉县| 朝阳区| 廉江市| 吴桥县| 图片| 修武县| 香河县| 漳浦县| 汉沽区| 绥中县| 北京市| 西乌| 郁南县| 临安市| 吴堡县| 江陵县| 洛浦县| 仁怀市| 吴旗县| 休宁县| 双牌县| 白河县| 娄底市| 连云港市| 哈巴河县| 颍上县| 海盐县| 故城县| 盐源县| 福贡县| 达拉特旗| 闽清县|