当前位置: 首页 > wzjs >正文

建设局网站查询线上网站设计培训

建设局网站查询,线上网站设计培训,广东省自然资源厅胡建斌,wordpress 分词插件功能需求 网页端需要做页面数据缓存(vue动态路由数据缓存),可根据id值打开多个编辑详情页,需要在页面操作返回时关闭面包屑页签 隐藏问题 1.页面缓存会有初始化和组件激活访问生命周期调用数据接口过多,有性能损耗 2.使…
功能需求

网页端需要做页面数据缓存(vue动态路由数据缓存),可根据id值打开多个编辑详情页,需要在页面操作返回时关闭面包屑页签

隐藏问题

1.页面缓存会有初始化和组件激活访问生命周期调用数据接口过多,有性能损耗

2.使用this.$router.back()返回是返回上一个历史路由,如果打开多个id详情页,并反复在两个详情页做切换操作,会导致在操作返回时看起来像是在详情页反复切换数据关闭不了,如下图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解决

1.缓存页组件初始化(created)和组件激活访问(activated)生命周期只执行一次,使用变量状态,在进入方法时判断变量是否return,在接口完成(finally)更改变量

2.路由历史栈,在路由守卫router.beforeEachstore存储from历史路由,在标题组件返回方法里,对历史路由栈数据进行操作,获取历史有效路由使用this.$router.replace跳转

//在面包屑页签组件初始化时调用addTags方法存储访问路由
addTags() {const { name } = this.$routeif (name) {this.$store.dispatch('tagsView/addView', this.$route)}
},//在权限管理路由守卫里存储历史访问路由
import store from './store'
router.beforeEach(async (to, from, next) => {...store.commit('tagsView/ADD_ROUTER_HISTORY', from.path);...
}

tagsView.js文件
在这里插入图片描述

const state = {visitedViews: [],cachedViews: [],routeHistory: [],closedRoutes: [],validHistory:[],lastValidRoute:''
}
const mutations = {ADD_ROUTER_HISTORY: (state, path) => {state.routeHistory.push(path);},CLOSE_ROUTER(state, route) {state.closedRoutes.push(route);// 生成过滤后的有效历史栈state.validHistory = state.routeHistory.filter(item => !state.closedRoutes.includes(item))if (state.cachedViews.length===0) {//首页state.lastValidRoute = '/'  }else{//历史有效路由state.lastValidRoute = state.validHistory[state.validHistory.length - 1];  }},ADD_VISITED_VIEW: (state, view) => {if (state.visitedViews.some(v => v.path === view.path)) returnstate.visitedViews.push(Object.assign({}, view, {title: view.meta.title || 'no-name'}))},ADD_CACHED_VIEW: (state, view) => {if (state.cachedViews.includes(view.name)) returnif (!view.meta.noCache) {state.cachedViews.push(view.name)}console.log(state.cachedViews)}
}
const actions = {addView({ dispatch }, view) {dispatch('addVisitedView', view)dispatch('addCachedView', view)},addVisitedView({ commit }, view) {commit('ADD_VISITED_VIEW', view)},addCachedView({ commit }, view) {commit('ADD_CACHED_VIEW', view)},delView({ dispatch, state }, view) {return new Promise(resolve => {dispatch('delVisitedView', view)dispatch('delCachedView', view)resolve({visitedViews: [...state.visitedViews],cachedViews: [...state.cachedViews],})})},delVisitedView({ commit, state }, view) {return new Promise(resolve => {commit('DEL_VISITED_VIEW', view)resolve([...state.visitedViews])})},delCachedView({ commit, state }, view) {return new Promise(resolve => {commit('DEL_CACHED_VIEW', view)resolve([...state.cachedViews])})}
}
export default {namespaced: true,state,mutations,actions
}

标题组件layout-header.vue文件返回方法里应用

<template><div class="layout-header"><div class="back" v-if="back" @click="handleBack"><img src="@/assets/images/back-icon.png"/></div><div class="layout-title" :style="'font-size:' + fontSize + 'px' ">{{title}}</div><slot></slot></div>
</template>
<script>
export default {props: {title: {type: String,default: ""},back: {type: Boolean,default: false},fontSize: {type: Number,default: 18}},data() {return {}},methods: {handleBack(){let path = this.$route.path//存入当前路由this.$store.commit('tagsView/ADD_ROUTER_HISTORY', path);const visitedViews=this.$store.state.tagsView.visitedViewslet view = visitedViews.find(v => v.path === path)//计算路由历史栈及访问路由this.$store.commit('tagsView/CLOSE_ROUTER', path);this.$store.dispatch('tagsView/delView', view)// 获取最近有效路由并跳转const target = this.$store.state.tagsView.lastValidRoutethis.$router.replace(`${target}`);}}
}
</script>
http://www.dtcms.com/wzjs/602169.html

相关文章:

  • 使用angularjs的网站做网站背景的图片大小
  • 建站公司分析2018一级a做爰片免费网站
  • 骨干专业建设验收网站江苏省二级建造师考试网
  • 网站策划布局专业模板网站制作服务
  • 个人网站建设实训目的动漫设计培训机构哪里好
  • 山东网站建设哪家专业网站建设论文伯乐在线
  • 嘉定郑州阳网站建设如何查询网站接入信息
  • 哈尔滨网站建设如何做网站算 自由职业者
  • 建设网站的拓扑图wordpress手机调度插件
  • 做自媒体查找素材的网站智能模板网站建设
  • 电商网站seo怎么做制作网站的难度
  • 龙岗网站优化公司案例app定制价格是多少
  • 珠海网站建设策划方案西安市建设网
  • 建设银行信用卡管理中心网站不定期更新域名
  • 做视频网站的备案要求如何做类似优酷的视频网站
  • 网站建设的流程该怎么确定东莞软件定制
  • 建设网站涉及的技术北京电子商务网站制作
  • 网站空间3个g多少钱廊坊市固安县建设局网站
  • 网站建设入固定资产郑州制作企业网站
  • 做围棋题网站网站的开发建设要做什么的
  • 免费建造公司网站建设限额哪里看
  • 东莞市官网网站建设报价canva 可画主页首页首页模板素材
  • 天津交通网站建设河南网站开发培训价格
  • 网站建设运用的技术wordpress安装与使用
  • 做3d效果的网站西宁网站开发
  • 昆明凡科建站公司网站建设 上海
  • 黑龙江省建设集团网站小程序是做什么的
  • 简洁的门户网站广州市建筑业联合会
  • 广州网站开发公司排名国家企业信用信息公示系统四川
  • 一家公司做两个网站金华网站制作策划