【发布时间】:2021-04-11 18:32:32
【问题描述】:
我正在 Vue 3 中构建一个网站,所有路线都存储在 routes.json 中。 (我这样做是为了在一个地方更新所有会随着时间而改变的数据。)但是当我尝试 eval() 我的 views 的延迟加载函数时,我收到错误“加载模块失败脚本:服务器以“text/html”的非 JavaScript MIME 类型响应。”在控制台中。下面是router/index.js:
import { createRouter, createWebHistory } from 'vue-router'
import routes from '../../data/routes.json'
let evalRoutes = []
for (let i = 0; i < routes.routes.length; i++)
evalRoutes[i] = routes.routes[i]
for (let i = 0; i < evalRoutes.length; i++)
evalRoutes[i].component = eval(evalRoutes[i].component)
console.log(evalRoutes)
const router = createRouter({
history: createWebHistory(process.env.BASE_URL),
routes: evalRoutes,
})
export default router
下面是routes.json:
{
"routes": [
{
"path": "/",
"name": "Home",
"component": "() => import('../views/Home')"
},
{
"path": "/about",
"name": "About",
"component": "() => import('../views/About')"
},
{
"path": "/contact",
"name": "Contact",
"component": "() => import('../views/Contact')"
},
{
"path": "/policy",
"name": "Policy",
"component": "() => import('../views/Policy')"
}
]
}
我以前没有见过任何人这样做,所以如果您知道解决方案,请将其留在下面:)
设置: 我有 Vue 3、Babel、具有历史模式和 SASS 的路由器,仅此而已。
【问题讨论】:
标签: javascript json vue.js vuejs3