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

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
當前位置: 首頁 - 科技 - 知識百科 - 正文

Vue.js中該如何自己維護路由跳轉記錄

來源:懂視網 責編:小采 時間:2020-11-27 21:56:34
文檔

Vue.js中該如何自己維護路由跳轉記錄

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

前言

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

解決方案就是,我們自己來維護一份history跳轉記錄。

案例與使用場景

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

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

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

代碼實現

實現history插件,維護歷史記錄

// 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;

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

// src/router.js

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

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

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

在路由全局afterEach中記錄跳轉歷史

// 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(本地下載)

總結

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

文檔

Vue.js中該如何自己維護路由跳轉記錄

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

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美 韩国 精品 另类 综合 | 国产未成女年一区二区 | 久久精品视频一区二区三区 | 亚洲一二三区在线观看 | 国产视频一 | 亚洲欧美日韩综合在线 | 国产成人精品一区二三区在线观看 | 久久伊人网站 | 精品欧美日韩一区二区三区 | 黄色网站在线观看视频 | 欧美极品在线观看 | 国产一级特黄高清免费下载 | 国产欧美一区二区精品性色99 | 香港经典a毛片免费观看…伊人色综合久久 | 色综合91久久精品中文字幕 | 黄色一级视频免费看 | 国产最新在线视频 | 乌克兰性欧美精品高清bd | 精品一区二区三区免费毛片爱 | 国产综合精品久久久久成人影 | 自拍 欧美 在线 综合 另类 | 欧美资源在线观看 | 羞羞网站在线观看 | 国产综合精品久久久久成人影 | 最新大黄网站免费 | 亚洲一区精品伊人久久 | 欧美精品aaa久久久影院 | 欧美高清在线精品一区二区不卡 | 综合 欧美 亚洲日本 | 欧美日韩无| 中文字幕日韩精品有码视频 | 亚洲国产成人久久99精品 | 免费的黄色毛片 | 亚洲美女一区二区三区 | 国产国拍亚洲精品午夜不卡17 | 一级一黄在线观看视频免费 | 精品久久久久久久久中文字幕 | 一级高清 | 亚洲欧美日韩综合精品网 | 素人面接| 成人a区|