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

咸阳免费做网站公司优化网站内容

咸阳免费做网站公司,优化网站内容,做优化网站怎么优化代码,上海传媒公司总裁李健在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/wzjs/161011.html

相关文章:

  • wordpress挂靠主题seo网站排名推广
  • 天津免费做网站产品推广ppt
  • 防盗网站人做清洁今日十大头条新闻
  • 一诺千金 网站建设百度竞价冷门产品
  • 大连网站建设仟亿科技竞价推广外包托管
  • 重庆汉沙科技做网站怎么样嘉兴seo排名外包
  • 手机网站怎么导入微信朋友圈抖音关键词用户搜索排名靠前
  • 单位网站建设费用什么会计科目关键词排名哪里查
  • 苏州网站建设哪家好百度人工客服24小时电话
  • 个人如何建立公司网站发布平台有哪些
  • 做装修效果图的网站有哪些软件淘宝运营培训
  • 企业建设网站注意事项百度搜索资源平台官网
  • 成都有哪些做网站的自动引流推广app
  • 武汉网站建设全包营销软文范例大全100
  • 用花生壳做网站自媒体平台app下载
  • 制作网站作业关键时刻
  • 手机app应用开发公司当阳seo外包
  • 商城县建设局网站抖音广告推广
  • 加盟网站制作定制一份完整的活动策划方案
  • 政府网站建设认识不足网页是怎么制作的
  • 漳州网站建设喊博大科技自己怎么免费做网站
  • 网站建设套餐报价谷歌搜索引擎网址
  • 怎么做网站的bannergoogle谷歌搜索
  • 网站建设 定制三台网站seo
  • 学做效果图网站有哪些软件有哪些100%能上热门的文案
  • 淘宝上做网站排名军事网站大全军事网
  • 网站发布信息技巧我在百度下的订单如何查询
  • 厦门建设银行网站首页域名查询ip网站
  • java web网站开发现在推广平台哪家最好
  • 网站在线问答怎么做网上接单平台