【问题标题】:Vue: Vue Router is not navigating to any routesVue:Vue 路由器没有导航到任何路线
【发布时间】:2021-05-19 07:27:31
【问题描述】:

我是Vue Js的新手,用@vue/cli4.5.11创建了一个Vue项目。

import { createApp } from 'vue';
import VueRouter from 'vue-router';
import App from './App.vue';
import TeamsList from './components/teams/TeamsList.vue'
import UsersList from './components/users/UsersList.vue'

const router = new VueRouter({
    mode: 'history',
    routes: [
        { path:'/teams',component:TeamsList},
        { path:'/users',component:UsersList}
    ]
});

const app = createApp(App);

app.use(router);

app.mount('#app');

但是我的应用程序没有导航到相应的路线,它为每条路线附加了/#

【问题讨论】:

  • 我在 Vue 2 中使用过 VueRouter 但还没有使用过 Vue 3,所以不确定在 Vue 3 中是否需要,但您可能需要添加 Vue.use(VueRouter)。跨度>
  • 您使用的是哪个版本的 Vue Router?
  • "vue": "^3.0.0", "vue-router": "^3.5.1"

标签: vue.js vue-router vuejs3


【解决方案1】:

Vue 3 需要 Vue Router 4 或更新版本,因此您必须更新该依赖项:

npm i -S vue-router@4

相关的 Vue Router 4 迁移指南:

例子:

import { createRouter, createWebHistory } from 'vue-router';

const router = createRouter({
    history: createWebHistory(),
    routes: [/*...*/]
});

//...

【讨论】:

  • 非常感谢,由于路由器版本问题,之前尝试过使用 Create Router 无法正常工作。但是随着路由器版本更新到 npm i -S vue-router@4 createRouter 工作正常并且现在能够导航。
【解决方案2】:

尝试更改导入 Vue 组件的方式,您可以执行以下操作:

component: () => import('./components/teams/TeamsList')

这是路由数组中的一个示例:

routes = [
  {
    path: '/',
    name: 'Home',
    component: Home
  },
  {
    path: '/teams',
    name: 'Teams',
    component: () => import('./components/teams/TeamsList')
  }
]

另外,请尝试始终为无法识别的路由添加默认的'/' 路径。

【讨论】:

  • 嗨,按照您的建议替换为动态导入现在,/# 附加没有发生,但没有路由到任何页面,并且在控制台中显示 runtime-core.esm-bundler.js?5c40:38 [ Vue 警告]:插件必须是具有“安装”功能的函数或对象。runtime-core.esm-bundler.js?5c40:38 [Vue 警告]:无法解析组件:路由器视图。跨度>
猜你喜欢
  • 1970-01-01
  • 2016-10-29
  • 1970-01-01
  • 1970-01-01
  • 2018-05-03
  • 2021-03-29
  • 2020-01-04
  • 2021-03-20
  • 1970-01-01
相关资源
最近更新 更多