vue.js 按需加载模块问题

Home上有个book-list的component,就是简单罗列一些图书的封面和名称,每个图书可以点封面进去到BookDetail的页面,这些功能没问题的。
Home还有个按钮可以显示更多图书,这就进到另一个更多图书的页面,里面也有一个book-list的component,但是有一个问题就是,如果不在Home点击某本书进入到BookDetail,在更多图书的页面每本书就点击不进去BookDetail。
在最后发现是按需加载的锅,写成马上加载就没有问题了:

原来是

const BookDetail = resolve => require(['@/views/BookDetail'], resolve)

现在正常的是

import BookDetail from '../views/BookDetail'

谁能告诉我如果要按需加载应该怎么写
PS:我的vue和webpack都是最新的

阅读 2.7k
1 个回答
这是路由的懒加载,问题描述的有点模糊,不知道是不是你要的
  • 声明
const view = (path, name) => () => import(`@/components/${path}${name}`)// 路由按需加载
  • 用法
export default new Router({
  routes: [

    {
      path: '/',
      name: 'Index',
      component: view('', 'Index'),
      children: [
        {
          path: '/',
          name: 'Recomend',
          component: view('', 'Recomend')
        }
      ]
    }    
  ]
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题