前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue页面中使用浏览器自带的前进后退功能

vue页面中使用浏览器自带的前进后退功能

作者头像
tianyawhl
发布2023-01-15 09:45:27
1.2K0
发布2023-01-15 09:45:27
举报
文章被收录于专栏:前端之攻略前端之攻略

在home页面created钩子中监听popstate事件

? created() { ? ? window.addEventListener("popstate",this.monitorBackForward,false) ? ? monitorBackForward(){ ? ? ? console.log(window.location.href.split("#")[1]) ? ? ? let path = window.location.href.split("#")[1] ? ? ? var menu ? ? ? getMenu(this.menuData) ? ? ? function getMenu(menuData){ ? ? ? ? for(let i=0;i< menuData.length;i++){ ? ? ? ? ? ? if(menuData[i].path == path){ ? ? ? ? ? ? ? ? menu = menuData[i] ? ? ? ? ? ? }else{ ? ? ? ? ? ? ? ? getMenu(menuData[i].childList) ? ? ? ? ? ? } ? ? ? ? } ? ? ? } ? ? ? console.log(menu) ? ? ? this.$store.commit("saveCurrentMenuBtns",menu.buttonList) ? ? ? this.$store.commit("addTab",menu) ? ? },

?并在具体的页面中使用setTimeout延迟大概100ms,延迟的原因是,等着执行完获取必要的信息 如?menuBtnsArr

? computed: { ? ? menuBtnsArr() { ? ? ? return this.$store.state.currentMenuBtns; ? ? }, ? ? langObj() { ? ? ? return this.$store.state.langFile; ? ? }, ? }, beforeMount() { ? ? setTimeout(() => { ? ? ? ?this.allBtnObj = this.$util.btnArrToObj(this.menuBtnsArr); ? ? ? ?console.log(this.allBtnObj) ? ? }, 100); ? ? this.screenHeight = ? ? ? document.documentElement.clientHeight || document.body.clientHeight; ? }, ? mounted() { ? ? setTimeout(() => { ? ? ? this.getAlarmTypeList(); ? ? ? this.getConfig(); ? ? ? this.getList(); ? ? ? this.getStatusList(); ? ? ? this.getAlarmStatusList(); ? ? }, 100); ? },

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com