关于vue-rouer addRoutes问题
main.js:
import Vue from 'vue'
import App from './App.vue'
import router, { initLayout } from './router'
import store from './store'
require('../mock/index')
Vue.config.productionTip = false
initLayout()
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
router.js
export async function initLayout () {
await axios.get('http://localhost/layout').then((res) => {
let path = '@' + res.data[0].component
// res.data[0].component = () => import(path)
res.data[0].component = Promise.resolve(import(path))
router.addRoutes([...res.data])
})
}
mock.js
export default Mock.mock('http://localhost/layout', [{
path: '/about',
name: 'About',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: '/views/About.vue'
}])
mock.js文件拦截了对于http://localhost/layout的请求,在main.js执行initLayout时,获取到了对应路由然后import在addRoutes。
为什么浏览器会提示 Error: Cannot find module '@/views/About.vue'
这个怎么解决啊???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你这写法很迷幻呀
按你的逻辑这样应该就可以了
router.js
main.js
component: () => import(path)