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

Vue頁面堆棧管理器詳情

 更新時間:2021年10月23日 10:31:45   作者:hezhongfeng  
這篇文章主要介紹了Vue頁面堆棧管理器

A vue page stack manager Vue頁面堆棧管理器 vue-page-stack

示例展示了一般的前進(jìn)、后退(有activited)和replace的場景,同時還展示了同一個路由可以存在多層的效果(輸入必要信息)

目前版本還沒有經(jīng)過整體業(yè)務(wù)的測試,歡迎有同樣需求的進(jìn)行試用

預(yù)覽

1、需求分析

由于重度使用了Vue全家桶在web App、公眾號和原生Hybrid開發(fā),所以很自然的會遇到頁面跳轉(zhuǎn)與回退這方面的問題。

場景舉例:

  • 列表頁進(jìn)入詳情頁,然后回退
  • 某操作頁A需要在下一頁面B選擇,選擇后需要退回到A頁面(A頁面還要知道選擇了什么)
  • 在任意頁面進(jìn)入到登錄頁面,登錄或者注冊成功后返回到原頁面,并且要保證繼續(xù)回退是不會到登陸頁面的
  • 支持瀏覽器的backforward(微信或者小程序很有用)
  • 在進(jìn)入、退出或者某些特殊頁面的時候添加一些動畫,比如模仿ios的默認(rèn)動畫(進(jìn)入是頁面從右向左平移,退出是頁面從左向右平移)

2、嘗試過的方法

嘗試了以下方法,但是都沒有達(dá)到我的預(yù)期

2.1 keep-alive

一般是使用兩個router-view通過route信息和keep-alive控制頁面是否緩存,這樣存在兩個問題:

  • keep-alive對相同的頁面只會存儲一次,不會有兩個版本的相同頁面
  • 兩個router-view之間沒有辦法使用transition等動畫

2.2 CSS配合嵌套route

曾經(jīng)在查看cube-ui的例子的時候,發(fā)現(xiàn)他們的例子好像解決了頁面緩存的問題,我借鑒(copy)了他們的處理方式,升級了一下,使用CSS和嵌套route的方式實(shí)現(xiàn)了基本的需求。

但是也有缺點(diǎn):

  • 我必須嚴(yán)格按照頁面的層級來寫我的route
  • 很多頁面在多個地方需要用到,我必須都得把路由配上(例如商品詳情頁面,會在很多個地方有入口)

3、功能說明

  • 在vue-router上擴(kuò)展,原有導(dǎo)航邏輯不需改變
  • push或者forward的時候重新渲染頁面,Stack中會添加新渲染的頁面
  • back或者go(負(fù)數(shù))的時候不會重新渲染,從Stack中讀取先前的頁面,會保留好先前的內(nèi)容狀態(tài),例如表單內(nèi)容,滾動條滑動的位置等
  • back或者go(負(fù)數(shù))的時候會把不用的頁面從Stack中移除
  • replace會更新Stack中頁面信息
  • 回退到之前頁面的時候有activited鉤子函數(shù)觸發(fā)
  • 支持瀏覽器的后退,前進(jìn)事件
  • 支持響應(yīng)路由參數(shù)的變化,例如從 /user/foo 導(dǎo)航到 /user/bar,組件實(shí)例會被復(fù)用
  • 可以在前進(jìn)和后退的時候添加不同的動畫,也可以在特殊頁面添加特殊的動畫

4、安裝和用法

安裝:

npm install vue-page-stack
# OR
yarn add vue-page-stack

使用:

import Vue from 'vue'
import VuePageStack from 'vue-page-stack';

// vue-router是必須的
Vue.use(VuePageStack, { router }); 
// App.vue
<template>
  <div id="app">
    <vue-page-stack>
      <router-view ></router-view>
    </vue-page-stack>
  </div>
</template>

<script>
export default {
  name: 'App',
  data() {
    return {
    };
  },
  components: {},
  created() {},
  methods: {}
};
</script>

5、API

5.1 注冊

 注冊的時候可以指定VuePageStack的名字和keyName,一般不需要

Vue.use(VuePageStack, { router, name: 'VuePageStack', keyName: 'stack-key' });

5.2 前進(jìn)和后退

想在前進(jìn)、后退或者特殊路由添加一些動畫,可以在router-view的頁面通過watch $route,通過stack-key-dir(自定義keyName這里也隨之變化)參數(shù)判斷此時的方向,可以參考實(shí)例

6、相關(guān)說明

6.1 keyName

為什么會給路由添加keyName這個參數(shù),是為了支持瀏覽器的后退,前進(jìn)事件,這個特點(diǎn)在微信公眾號和小程序很重要

6.2 原理

獲取當(dāng)前頁面Stack部分參考了keep-alive的部分

這個插件存在我心中很久了,斷斷續(xù)續(xù)做了好久,終于被我搞定了,真的非常開心。

目前版本還沒有經(jīng)過整體業(yè)務(wù)的測試,歡迎有同樣需求的進(jìn)行試用,有任何的意見或者建議,歡迎在 Github issue和PR,感謝你的支持和貢獻(xiàn)。

這個插件同時借鑒了vue-navigationvue-nav,很感謝他們給的靈感。

到此這篇關(guān)于Vue頁面堆棧管理器詳情的文章就介紹到這了,更多相關(guān)Vue頁面堆棧管理器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于axios配置請求頭content-type實(shí)例詳解

    關(guān)于axios配置請求頭content-type實(shí)例詳解

    現(xiàn)在前端開發(fā)中需要通過Ajax發(fā)送請求獲取后端數(shù)據(jù)是很普遍的一件事情了,下面這篇文章主要介紹了關(guān)于axios配置請求頭content-type的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • vuejs使用FormData實(shí)現(xiàn)ajax上傳圖片文件

    vuejs使用FormData實(shí)現(xiàn)ajax上傳圖片文件

    本篇文章主要介紹了vuejs使用FormData實(shí)現(xiàn)ajax上傳圖片文件,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08
  • vue3第二次傳遞數(shù)據(jù)方法無法獲取到最新的值的解決方法

    vue3第二次傳遞數(shù)據(jù)方法無法獲取到最新的值的解決方法

    這篇文章主要介紹了vue3第二次傳遞數(shù)據(jù)方法無法獲取到最新的值,本文通過實(shí)例圖文相結(jié)合給大家詳細(xì)講解,感興趣的朋友一起看看吧
    2025-04-04
  • vue使用$emit時,父組件無法監(jiān)聽到子組件的事件實(shí)例

    vue使用$emit時,父組件無法監(jiān)聽到子組件的事件實(shí)例

    下面小編就為大家分享一篇vue使用$emit時,父組件無法監(jiān)聽到子組件的事件實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • vue中axios請求的封裝實(shí)例代碼

    vue中axios請求的封裝實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于vue中axios請求封裝的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧要的朋友可以參考下
    2019-03-03
  • Vue路由history模式解決404問題的幾種方法

    Vue路由history模式解決404問題的幾種方法

    這篇文章主要介紹了Vue路由history模式解決404問題的幾種方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • Vue3中操作dom的四種方式總結(jié)(建議收藏!)

    Vue3中操作dom的四種方式總結(jié)(建議收藏!)

    VUE是通過傳遞一些配置給Vue對象和頁面中引用插值表達(dá)式來操作DOM的,下面這篇文章主要給大家介紹了關(guān)于Vue3中操作dom的四種方式總結(jié),文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Vue?事件處理函數(shù)的綁定示例詳解

    Vue?事件處理函數(shù)的綁定示例詳解

    這篇文章主要為大家介紹了Vue?事件處理函數(shù)的綁定示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • vue的全局提示框組件實(shí)例代碼

    vue的全局提示框組件實(shí)例代碼

    這篇文章主要介紹了vue的全局提示框組件實(shí)例代碼,需要的朋友可以參考下
    2018-02-02
  • 通過npm引用的vue組件使用詳解

    通過npm引用的vue組件使用詳解

    本文章通過實(shí)現(xiàn)一個vue-dialog的彈出層組件,然后附加說明如果發(fā)布此包到npm,且能被其他項(xiàng)目使用。本文給大家介紹的非常詳細(xì),需要的的朋友參考下
    2017-03-03

最新評論

九江市| 香河县| 阜城县| 大港区| 阿瓦提县| 双桥区| 陆河县| 开原市| 桓仁| 东山县| 元江| 专栏| 周宁县| 明星| 大同市| 东乌珠穆沁旗| 汉源县| 新和县| 甘德县| 巴林右旗| 仙居县| 绥阳县| 丹巴县| 姜堰市| 洪泽县| 通河县| 兴城市| 黄陵县| 中卫市| 隆安县| 胶南市| 利辛县| 加查县| 平乐县| 徐水县| 嘉鱼县| 青田县| 海南省| 龙岩市| 翁源县| 东丰县|