欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vite+vue3+tsx項目打包后動態(tài)路由無法加載頁面的問題及解決

 更新時間:2024年03月15日 11:04:03   作者:coder丘山  
這篇文章主要介紹了vite+vue3+tsx項目打包后動態(tài)路由無法加載頁面的問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

vite+vue3+tsx打包后動態(tài)路由無法加載頁面

在部署項目到服務(wù)器后,發(fā)現(xiàn)動態(tài)路由失效,測試開發(fā)環(huán)境時路由都可以正常跳轉(zhuǎn)

生產(chǎn)環(huán)境控制臺報錯

原代碼

如下:

查看了官方文檔,并沒有找到合適的方案,后百度查看了一些解決方案,但都沒有解決實際問題

斷斷續(xù)續(xù)搞了好幾天,終于解決了問題

解決方案

1. 組件添加name名稱

2.動態(tài)添加路由的方法

 
// routerList:路由數(shù)據(jù)
// modules: 所有的組件文件
export const asyncRouteFile  = async (routeList:any,modules:any)=>{
    // 路由數(shù)據(jù)轉(zhuǎn)化成平級
	let rs = handleRoutes(routeList)
	return new Promise<string>(async (resolve, reject) => {
		   for (const key in modules) {
			if (Object.prototype.hasOwnProperty.call(modules, key)) {
				const e = modules[key];
				await e().then((mod:any) =>{
                   // mod.default?.name就是組件中的name名稱
				   let r = rs.find((item:any) => item.component === mod.default?.name)
				   if (!r) return
                   // 匹配到組件之后添加路由
				   router.addRoute('Dashbord',{
					   path: r.path ,
					   name:r.component,
					   meta: r.meta,
					   component: mod.default  ,
				   });
				})
			}
		   }
 
		   resolve('成功')
	   })
}

3.登錄中使用

/* 登錄之后的操作 */ 
 
//  獲取路由
 let res  = await getRouters()      
 // 獲取views下所有的.tsx結(jié)尾的文件(自行替換.vue或.js)
 const modules = import.meta.glob("../**.tsx")
 // 調(diào)用方法添加路由
 await asyncRouteFile(res.data.data,modules)

4.解決頁面刷新之后路由失效問題

let flag = 0
router.beforeEach(async (to: any, from: any, next: any) => {
    const token = sessionStorage.getItem(SystemInfos.tokenHeader);
    if (token) {
        if (to.path === '/login') {
            next('/')
        } else {
 
            if (flag === 0) {
                flag++
                let res =  await getRouters()
                const modules = import.meta.glob("../**.tsx")
                await asyncRouteFile(res.data.data,modules)
                next({ path: to.path })
            } else {
                next()
            }
        }
 
    } else {
        if (to.path === '/login') {
            next()
        } else {
            next('/login')
        }
 
    }
});

總結(jié)

到此結(jié)束戰(zhàn)斗 !  

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue 綁定使用 touchstart touchmove touchend解析

    vue 綁定使用 touchstart touchmove touchend解析

    這篇文章主要介紹了vue 綁定使用 touchstart touchmove touchend解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Vue插槽原理與用法詳解

    Vue插槽原理與用法詳解

    這篇文章主要介紹了Vue插槽原理與用法,結(jié)合實例形式詳細(xì)分析了vue.js插槽內(nèi)容、具名插槽、作用域插槽等相關(guān)原理與使用方法,需要的朋友可以參考下
    2019-03-03
  • vue組件從開發(fā)到發(fā)布的實現(xiàn)步驟

    vue組件從開發(fā)到發(fā)布的實現(xiàn)步驟

    這篇文章主要介紹了vue組件從開發(fā)到發(fā)布的實現(xiàn)步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • vue內(nèi)置組件component--通過is屬性動態(tài)渲染組件操作

    vue內(nèi)置組件component--通過is屬性動態(tài)渲染組件操作

    這篇文章主要介紹了vue內(nèi)置組件component--通過is屬性動態(tài)渲染組件操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vue實現(xiàn)在data里引入相對路徑

    vue實現(xiàn)在data里引入相對路徑

    這篇文章主要介紹了vue實現(xiàn)在data里引入相對路徑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 基于elementUI豎向表格、和并列的案例

    基于elementUI豎向表格、和并列的案例

    這篇文章主要介紹了基于elementUI豎向表格、和并列的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 15分鐘上手vue3.0(小結(jié))

    15分鐘上手vue3.0(小結(jié))

    這篇文章主要介紹了15分鐘上手vue3.0,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 五分鐘教你使用vue-cli3創(chuàng)建項目(新手入門)

    五分鐘教你使用vue-cli3創(chuàng)建項目(新手入門)

    本文主要介紹了五分鐘教你使用vue-cli3創(chuàng)建項目,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 詳解vuex結(jié)合localstorage動態(tài)監(jiān)聽storage的變化

    詳解vuex結(jié)合localstorage動態(tài)監(jiān)聽storage的變化

    這篇文章主要介紹了詳解vuex結(jié)合localstorage動態(tài)監(jiān)聽storage的變化,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • vue3.0-props、computed、自定義事件方式

    vue3.0-props、computed、自定義事件方式

    這篇文章主要介紹了vue3.0-props、computed、自定義事件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評論