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

怎么样做深网的网站百度招聘 网站开发

怎么样做深网的网站,百度招聘 网站开发,电子商务平台内的自然人,广告设计软件哪个好用在Vue应用中,通过路由可以实现不同页面之间的切换,同时也可以实现页面之间的传参和控制页面的显示与隐藏。但是我们在开发的过程中,会发现在路由配置中的路由配置和我们的项目结构高度重复,在我们修改页面文件结构时非常的麻烦与复…

        在Vue应用中,通过路由可以实现不同页面之间的切换,同时也可以实现页面之间的传参和控制页面的显示与隐藏。但是我们在开发的过程中,会发现在路由配置中的路由配置和我们的项目结构高度重复,在我们修改页面文件结构时非常的麻烦与复杂,这时候,如果可以动态的导入路由,就可以大大提示我们项目的可维护性。

        我们在开发中会经常听见一句话,约定大于配置,路由的动态导入也是这句话应用的一种,我们这里动态导入路由模仿了在uniapp进行小程序开发的页面配置文件,要求有以下几点:

  1. 所有的页面都必须配置到/src/pages文件夹下;
  2. 所有的页面文件层级必须是/src/pages/页面文件夹名称/;
  3. 所有的页面文件中必须有page.ts作为配置文件和index.vue作为页面入口文件;

结构展示如下:

page.ts文件展示:

//home的page.ts
export default {title: '首页',menuOrder: 1,childrens: [`../pages/homechildren`]
}
//homechildren的page.ts
export default {title: '首页的子组件',menuOrder: 1,isChild: true,
}
//login的page.ts
export default {title: '登录',menuOrder: 2
}

        此时我们要通过vite的函数import.meta.glob()和import()扫描pages文件夹动态生成路由,代码如下:

//路由配置文件
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'const pages = import.meta.glob('../pages/**/page.ts', {eager: true,import: 'default'
})const components = import.meta.glob('../pages/**/index.vue')const getChildRoutes = async (childrens: string[]) => {const res = [];for (const item of childrens) {const pageModule = await import(`${item}/page.ts`);const componentModule = await import(`${item}/index.vue`);const routePath = item.replace('../pages/', '').replace('/page.ts', '') || '/';const name = routePath.split('/').filter(Boolean).join('-') || 'index';res.push({path: routePath,name,component: componentModule.default,meta: pageModule.default});}return res;
};const routes = Object.entries(pages).filter(([path, meta]: [string, any]) => !meta.isChild).map(([path, meta]: [string, any]) => {const compPath = path.replace('page.ts', 'index.vue')path = path.replace('../pages', '').replace('/page.ts', '') || '/';const name = path.split('/').filter(Boolean).join('-') || 'index';return {path,name,component: components[compPath],meta: meta,children: !!meta.childrens ? getChildRoutes(meta.childrens) : []} as RouteRecordRaw
})const router = createRouter({history: createWebHistory(),routes: routes,
})//路由重定向
router.beforeEach((to, from, next) => {if (to.path === '/') {next('/home')} else if (!routes.some(route => route.path === to.path)) {next('/home')} else {next()}})export {router
}

 效果展示:

路由对象展示:

http://www.dtcms.com/a/518038.html

相关文章:

  • 优秀的手机网站标准无锡网站建设服务公司
  • 怎么建一个自己的网站尚海整装为啥口碑那么差
  • 京东网站建设评估wordpress桌面宠物
  • 数据分区、分库、分表:理解与实践
  • 南通网站排名优化网站推广怎么做优化
  • 如何备案成企业网站电信宽带做网站服务器
  • 做app布局参考哪个网站帮老板做网站
  • 树莓派Pico 2W micropython开发环境搭建
  • 在东营怎么建网站响应式网页需要设计几张图
  • 南宁市网站维护与推广公司网页设计培训哪家机构好
  • 一个vps主机放两个网站 速度财务公司名称大全简单大气
  • 广州网站建设联雅了解网站基本知识
  • 一个云主机可以做多少网站二手书交易网站开发与设计
  • 4.5-中间件之Nginx
  • 新网站应该怎么做珠海软件公司排名
  • wordpress基本设置西宁seo网站建设
  • 下沙网站制作营业执照官网入口
  • 网站建设有待加强西部数码个人网站
  • 淘宝客的api怎么做网站做网站策划一个专利的主题宣传
  • 沙漠网站建设广东深圳建设工程信息网站
  • 石桥铺做网站做网站如何能让外国人看得到
  • 网站开发tt0546wordpress强大播放器
  • 做网站毕业实训报告广州网站排名
  • 手机wap网站如何建设深圳东门老街美食攻略
  • 写作网站排名外贸建站 智能营销
  • 仿58网站怎么做深圳制作网站的公司哪家好
  • 做网站如何处理并发问题用ps做网站得多大像素
  • vbs自学笔记(未完更)
  • 塑胶原料 东莞网站建设松花江避暑城建设网站
  • 济宁广告公司网站建设服装类电子商务网站建设报告