【问题标题】:Vuejs Router Async ComponentVuejs 路由异步组件
【发布时间】:2020-05-07 09:42:58
【问题描述】:

我正在使用 npm run serve 运行一个 vue 应用程序。 我正在将组件异步注入到路由中,并且在我看来正在发生一些奇怪的事情,因为当我什至不在该路径上时,它会向我显示有关另一个路径的组件的错误,说该文件丢失了......而且它是是的,它不见了……但是当我在那条路上时,这不是应该被注入的吗?看起来组件已经导入了...

 const router = new VueRouter({
    routes: [ 
       { path: '/login', component: () => import('./pages/login.vue') },
       { path: '/register', component: () => import('./pages/register.vue') },
    ]

我在编译器中看到了这个错误

./src/main.js
Module not found: Error: Can't resolve './pages/register.vue' in '/home/daniel/work/someapp/frontend/src' 

并且路径是/login,当然当我创建注册页面时一切正常......只是不明白为什么在尚未加载路由时它会被导入。

【问题讨论】:

  • 使用 import('./components/pages/register.vue') 试试
  • 如果我创建文件,它会被正确导入......为什么当我根本不在那个路线时它会导入它/检查它......这是我的问题

标签: vue.js vue-router eslint async-components


【解决方案1】:

你是对的。

在您导航到具有错误导入路径的路径之前,您不会收到错误消息。

但是,您已经为登录和注册指定了/login。

所以如果注册组件导入路径不正确就会报错。

这是一个简单的实现,它演示了相同的内容。

当您导航到类别时,您会看到一个错误。但主页、新闻和列表将正常工作。

【讨论】:

  • Ops...这是一个错字...纠正了我的问题。我尝试了您的示例,当您导航到缺少组件的路线时,它确实会引发异常......虽然不在我的路线中......它也只发生在这两条路线中
  • @daniel 你能分享一个复制你的问题的代码框吗?
  • 呸...还是不明白...codesandbox.io/s/shy-frost-ozm3o?file=/src/App.vue ...这就是我所拥有的...但是在代码框中按预期工作...
  • @daniel 很难说。但是,如果您无法在沙盒上复制错误,那么很可能路由不是问题。值得检查您的 webpack 配置。还要检查 vue 和 vue 路由器的版本。
  • 我想这更多地与 eslint 相关......只要它异步导入它并不那么重要......
猜你喜欢
  • 1970-01-01
  • 2019-01-04
  • 2019-03-02
  • 1970-01-01
  • 2018-07-16
  • 2018-02-10
  • 2018-01-31
  • 1970-01-01
相关资源
最近更新 更多