国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

Vue.js中該如何自己維護(hù)路由跳轉(zhuǎn)記錄

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 21:56:34
文檔

Vue.js中該如何自己維護(hù)路由跳轉(zhuǎn)記錄

Vue.js中該如何自己維護(hù)路由跳轉(zhuǎn)記錄:前言 在Vue的項目中,如果我們想要做返回、回退操作時,一般會調(diào)用router.go(n)這個api,但是實際操作中,使用這個api有風(fēng)險,就是會讓用戶跳出當(dāng)前應(yīng)用,因為它記錄的是瀏覽器的訪問記錄,而不是你當(dāng)前應(yīng)用的訪問記錄,這是非常可怕的事情。 解決方案就是,
推薦度:
導(dǎo)讀Vue.js中該如何自己維護(hù)路由跳轉(zhuǎn)記錄:前言 在Vue的項目中,如果我們想要做返回、回退操作時,一般會調(diào)用router.go(n)這個api,但是實際操作中,使用這個api有風(fēng)險,就是會讓用戶跳出當(dāng)前應(yīng)用,因為它記錄的是瀏覽器的訪問記錄,而不是你當(dāng)前應(yīng)用的訪問記錄,這是非常可怕的事情。 解決方案就是,

前言

在Vue的項目中,如果我們想要做返回、回退操作時,一般會調(diào)用router.go(n)這個api,但是實際操作中,使用這個api有風(fēng)險,就是會讓用戶跳出當(dāng)前應(yīng)用,因為它記錄的是瀏覽器的訪問記錄,而不是你當(dāng)前應(yīng)用的訪問記錄,這是非常可怕的事情。

解決方案就是,我們自己來維護(hù)一份history跳轉(zhuǎn)記錄。

案例與使用場景

代碼地址:https://github.com/dora-zc/mini-vue-mall (本地下載)

這是一個基于Vue.js的小型商城案例,應(yīng)用場景:

  1. 自己實現(xiàn)一個Vue插件src/utils/history.js,通過堆棧的方式維護(hù)頁面跳轉(zhuǎn)的歷史記錄,控制返回跳轉(zhuǎn)
  2. 點(diǎn)擊返回按鈕是出棧操作
  3. 在全局路由router.js 中,實例化路由前,通過原型擴(kuò)展router的back()方法
  4. 在全局afterEach中存放歷史記錄

代碼實現(xiàn)

實現(xiàn)history插件,維護(hù)歷史記錄

// src/utils/history.js

const History = {
 _history: [], // 歷史記錄堆棧
 install(Vue) {
 // 提供Vue插件所需安裝方法
 Object.defineProperty(Vue.prototype, '$routerHistory', {
 get() {
 return History;
 }
 })
 },
 push(path) { // 入棧
 this._history.push(path);
 },
 pop() {
 this._history.pop();
 },
 canBack(){
 return this._history.length > 1;
 }

}
export default History;

在路由實例化之前,擴(kuò)展back()方法

// src/router.js

import Vue from 'vue'
import Router from 'vue-router'
import History from './utils/history';

Vue.use(Router);
Vue.use(History);

// 實例化之前,擴(kuò)展Router
Router.prototype.goBack = function () {
 this.isBack = true;
 this.back();
}

在路由全局afterEach中記錄跳轉(zhuǎn)歷史

// src/router.js

// afterEach記錄歷史記錄
router.afterEach((to, from) => {
 if (router.isBack) {
 // 后退
 History.pop();
 router.isBack = false;
 router.transitionName = 'route-back';
 } else {
 History.push(to.path);
 router.transitionName = 'route-forward';
 }
})

在公用Header組件中使用

// Hearder.vue

<template>
 <div class="header">
 <h1>{{title}}</h1>
 <i v-if="$routerHistory.canBack()" @click="back"></i>
 <div class="extend">
 <slot></slot>
 </div>
 </div>
</template>

<script>
export default {
 props: {
 title: {
 type: String,
 default: ""
 }
 },
 methods: {
 back() {
 this.$router.goBack();
 }
 }
};
</script>

完整代碼請查看:https://github.com/dora-zc/mini-vue-mall(本地下載)

總結(jié)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Vue.js中該如何自己維護(hù)路由跳轉(zhuǎn)記錄

Vue.js中該如何自己維護(hù)路由跳轉(zhuǎn)記錄:前言 在Vue的項目中,如果我們想要做返回、回退操作時,一般會調(diào)用router.go(n)這個api,但是實際操作中,使用這個api有風(fēng)險,就是會讓用戶跳出當(dāng)前應(yīng)用,因為它記錄的是瀏覽器的訪問記錄,而不是你當(dāng)前應(yīng)用的訪問記錄,這是非常可怕的事情。 解決方案就是,
推薦度:
標(biāo)簽: 記錄 如何 VUE
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 日日摸日日 | 欧美日韩国产精品va | 成人国内精品久久久久影院 | 国产亚洲第一页 | 欧美啊v | 日韩国产欧美一区二区三区 | 国产一区二区三区欧美精品 | 国产全黄a一级毛片 | 精品久久久久久综合日本 | 国产高清一级在线观看 | 久久精品99久久香蕉国产色戒 | 欧美伊香蕉久久综合类网站 | 91在线精品亚洲一区二区 | 成人国产精品一区二区网站 | 一本色道久久88综合亚洲精品高清 | 欧美国产高清 | 久久91精品国产91久久 | 欧美国产日韩在线观看 | 日韩欧美综合在线 | 2022国产精品福利在线观看 | 情侣国产在线 | 中文字幕在线播放第一页 | 亚洲成人精品久久 | 欧美日韩亚洲国产无线码 | 国产精品久久久久久久毛片 | 国产在线一区二区三区欧美 | 日韩精品免费视频 | 国产成人精品三级在线 | 国产成人精品日本亚洲11 | 91久久精品国产91久久性色也 | 看全色黄大色大片免费久久 | 国产高清不卡一区二区三区 | 亚洲一区二区三区中文字幕 | 亚洲一区二区三区在线免费观看 | 91精品久久久久 | 在线亚洲精品国产成人二区 | 美女视频黄a视频全免费网站色 | 亚洲日韩欧美一区二区在线 | 在线观看国产欧美 | 国产一区二区视频在线 | 91狠狠干 |