keep-alive和router-view配合使用缓存整个路由页面以及路由切换

在这里插入图片描述

实现内容:通过vue实现,在页面有侧边栏动态来展示当前页面流程,右边进行页面的切换,左右两边都是组件,但是A/B/C组件的切换是通过keep-alive搭配router-view实现的,首先在当前文件中创建五个文件:index.vue,A/B/C.vue,router.json
在index.vue中,实现的是整个页面的布局,左边组件的引入具体样式看具体需求不再列出,右边主页面的内容实现缓存如下:

<keep-alive><router-view @toggle='toggleHander' />
</keep-alive>

toggle是A/B/C组件中emit事件绑定的,用来实现左边栏动态的切换,不再具体展示,具体页面路由切换在具体的A/B/C页面中,toggleHa
在router.json中我们将主页面路由配置进去:

{"pages":["pageA","pageB","pageC"]
}

通过这些能实现是基于在router.js里的配置
router.js文件关于这块的处理

// 每个小文件里面的jsonconst childernRouter = require(`@/${fileName}/router.json`)childernRouter.pages.forEach((childFileName)=>{const childComponentConfig=(resolve)=>require([`@/${fileName}/${childFileName}`],resolve)const childComponentName=upperFirst(camelCase(//	 剥去文件名开头的`'./`和结尾的扩展名childComponentName.replace(/^\.\/(.*)\.w+$/,'$1')))const child ={path:childFileName,name:fileName+'./'+childComponentName,component:childComponentConfig.default || childComponentConfig}singlePage.children.push(child)})singlePage.redirect = singlePage.path+'/'+singlePage.children.path // 根据配置的顺序展示第一个// 构造路由pageArr.push(singlePage)

router.js整个文件具体实现

let pageArr=[]
// 整个项目的json 
let requireComponent=require('@/app.json')
requireComponent.pages.forEach((trade)=>{const fileName=trade.path// 获取路由,路由懒加载const componentConfig=(resolve)=>require([`@/${fileName}`,resolve])const componentName=upperFirst(camelCase(//	 剥去文件名开头的`'./`和结尾的扩展名fileName.replace(/^\.\/(.*)\.w+$/,'$1')))let singlePage={path:'/'+fileName,name:String(String(componentName)),component:componentConfig.default || componentConfig,children:[],props:(route)=>({query:{transType:route.query.transType,oldTask:route.query.taskId}})}// 每个小文件里面的jsonconst childernRouter = require(`@/${fileName}/router.json`)childernRouter.pages.forEach((childFileName)=>{const childComponentConfig=(resolve)=>require([`@/${fileName}/${childFileName}`],resolve)const childComponentName=upperFirst(camelCase(//	 剥去文件名开头的`'./`和结尾的扩展名childComponentName.replace(/^\.\/(.*)\.w+$/,'$1')))const child ={path:childFileName,name:fileName+'./'+childComponentName,component:childComponentConfig.default || childComponentConfig}singlePage.children.push(child)})singlePage.redirect = singlePage.path+'/'+singlePage.children.path // 根据配置的顺序展示第一个// 构造路由pageArr.push(singlePage)
})
// 如果路由默认找不到匹配首页
pageArr.push({path:'*',redirect:pageArr[0].path, // 默认跳转到首页component:pageArr[0].component }
)
export const constantRouterMap= pageArr
export default new Router({mode:'hash',scrollBehavior:()=>({y:0}),routes:constantRouterMap,base:ProcessingInstruction.env.BASE_URL
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/21248.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hive SQL 迁移 Flink SQL 在快手的实践

摘要&#xff1a;本文整理自快手数据架构工程师张芒&#xff0c;阿里云工程师刘大龙&#xff0c;在 Flink Forward Asia 2022 生产实践专场的分享。本篇内容主要分为四个部分&#xff1a; Flink 流批一体引擎 Flink Batch 生产实践 核心优化解读 未来规划 点击查看原文视频…

2.Vue3中Cesium地图初始化及地图控件配置

前言 本文中&#xff0c;我们主要介绍 Cesium 在 Vue 3运行环境的配置&#xff0c;以及 Cesium 实例中控件的显隐设置&#xff0c;本文是后续文章内容的基础&#xff0c;项目代码在此查看&#xff1b;通过本文&#xff0c;我们可以得到一个纯净的 cesium 项目&#xff0c;后续的…

JMeter 中 3 种参数值的传递

目录 前言&#xff1a; (一) 从 CSV 文件读取要批量输入的变量 (二) 利用 Cookie 进行值的传递 (三) 利用正则匹配提取上一个接口的返回数据作为下个请求的输入 前言&#xff1a; 在JMeter中&#xff0c;参数值的传递是非常重要的&#xff0c;因为它允许你在测试过程中动态…

小区物业管理系统需求分析

小区物业管理系统核心在于加强管理&#xff0c;提升效率&#xff0c;降低成本。实现物业核心业务信息化&#xff0c;为员工提供流畅运营模式&#xff0c;为业主提供高品质服务&#xff0c;有助于公司做强做大&#xff0c;系统优势主要有以下几方面&#xff1a; • 服务数字化&a…

【网络系统集成】Windows Server集群实验

1.实验名称 Windows Server集群实验 2.实验目的 通过使用Windows 2003进行实验,理解与掌握服务器技术与系统集成相关知识点。 3.实验内容 (1)在Vmware Workstation中安装Windows Server 2003 (2)在Windows Server 2008中完成DNS,WEB的配置

scrapy

scrapy介绍安装--架构 Scrapy 是一个爬虫框架&#xff08;底层代码封装好了&#xff0c;只需要在固定位置写固定代码即可&#xff09;&#xff0c;应用领域比较广泛---》爬虫界的django# 安装 #Windows平台1、pip3 install wheel #安装后&#xff0c;便支持通过wheel文件安装软…

STM32 Proteus仿真全自动洗衣机洗涤脱水-0074

STM32 Proteus仿真全自动洗衣机洗涤脱水-0074 Proteus仿真小实验&#xff1a; STM32 Proteus仿真全自动洗衣机洗涤脱水-0074 功能&#xff1a; 硬件组成&#xff1a;STM32F103R6单片机LCD1602显示器 L298N驱动电机正反转蜂鸣器LED指示灯多个按键(标准洗&#xff0c;快速洗&a…

java中json和对象之间相互转换的运用

1.目录结构 2.配置相关文件 2.1.引入相关的pom文件 pom.xml <dependencies><!-- JSON --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.12.3</vers…

MySQL基本查询

目录 create 替换 Retrieve select 全列查询 限制查询长度 指定列查询 查询字段为表达式 为查询结果指定别名 结果去重 where条件​编辑 结果排序 筛选分页结果 Update Delete 删除整张表 截断表 插入查询结果 聚合函数 group by子句的使用 create INSERT…

STM32单片机语音识别台灯控制系统人检测亮度调节

实践制作DIY- GC00156-语音识别台灯控制系统 一、功能说明&#xff1a; 基于STM32单片机设计-语音识别台灯控制系统 二、功能说明&#xff1a; 电路&#xff1a;STM32F103C系列最小系统串口语音识别模块LED灯板1个红外传感器 1.任何时候没有人则关闭灯。有人可以自动打开灯。…

【PHP面试题28】Redis中的connect和pconnect如何使用,有什么区别

文章目录 一、背景二、connect函数三、pconnect函数四、区别和使用场景五、总结 一、背景 本文已收录于PHP全栈系列专栏&#xff1a;PHP面试专区。 计划将全覆盖PHP开发领域所有的面试题&#xff0c;对标资深工程师/架构师序列&#xff0c;欢迎大家提前关注锁定。 Redis是一个开…

挖矿记录+解决方案:利用GitLab组件对服务器进行挖矿导致CPU占用200%

文章目录 什么是云服务器挖矿?事件记录事件分析产生影响解决方案后期预防什么是云服务器挖矿? 云服务器挖矿是指利用云服务器从事赚取比特币的活动。比特币是一种虚拟数字货币,挖矿是将一段时间内比特币系统中发生的交易进行确认,并记录在区块链上形成新区块的过程。 用于…