【问题标题】:Don't know how to access a second page with Vue Router不知道如何使用 Vue Router 访问第二个页面
【发布时间】:2021-07-31 15:30:24
【问题描述】:

我正在尝试将 Vue Router 添加到我的一个项目中,以便能够在某些页面之间导航。

我不熟悉 Vue Router,所以我可能做错了什么。

import {createRouter, createWebHistory} from 'vue-router'
import App from '../App'
import Test from '../Views/Test'


const router = createRouter({
    history: createWebHistory(),
    routes: [
        {
            path:'',
            name: 'App',
            component: App,
        },
        {
            path:'/test',
            name: 'Test',
            component: Test
        }
    ]
})
export default router

这是我的index.js 文件。我的问题是,当我运行我的代码时,我可以毫无问题地看到我的 App 页面,但是当我手动转到 http://localhost:8080/test 时,我有一个错误提示该页面尚未找到

你能帮我解决这个问题吗?

谢谢!


更新

我已经更改了一些内容,现在我可以访问我的页面,但只能使用路由器链接。 我添加了一个First.vue 页面,我可以在其中选择转到我的App.vue 或我的Test.vue

我的First.vue

<template>
    <router-view></router-view>
    
    <router-link to='/app'>Go to application</router-link>
    <br>
    <router-link to='/test'>Go to test</router-link>
    
</template>

我的 ìindex.js` 现在看起来像这样:

import {createRouter, createWebHistory} from 'vue-router'
import App from '../App.vue'
import Test from '../Views/Test.vue'
import First from '../Views/First.vue'


const router = createRouter({
    history: createWebHistory(),
    routes: [
        {
            path:'/',
            name: 'First',
            component: First,
        },
        {
            path:'/test',
            name: 'Test',
            component: Test
        },
        {
            path:'/app',
            name: 'App',
            component: App
        }
    ]
})
export default router

【问题讨论】:

  • 改用http://localhost:8080/#/test
  • @bel3atar 当我这样做时,它只显示我的应用程序,而不是我的测试页面
  • 你确定你真的在使用路由器吗?你打电话给app.use(router)吗?
  • @ThomasKuhlmann 是的,这是我的 main.js:import { createApp } from 'vue' import App from './App.vue' import router from './router' createApp(App).use(router).mount('#app')
  • 澄清“我有一个错误提示该页面未找到”。你在哪里看到的?那是404吗?

标签: javascript vue.js vue-router


【解决方案1】:

分析您的沙盒后,我认为问题在于您的导出和导入语句,它们不匹配。

如果你像这样导出你的模块:

export const router = createRouter({
  ...
});

import 语句应该是

import { router } from "./router/index";

如果你像这样导出你的模块:

const router = createRouter({
  ...
});
export default router;

import 语句应该是

import router from "./router/index";

【讨论】:

  • 它似乎对我不起作用,尝试访问localhost:8080/test 时仍然出现错误:((
  • 看来最初的问题是围绕 vue-router 4 - history: createWebHistory() 是您如何使用新版本设置历史模式,所以这已经完成了
  • 在分析了你的沙箱之后,我发现了问题所在。这不是关于你的 vue-router 设置,而是关于你如何导出和导入你的路由器。我已经更新了评论。
  • @ThomasKuhlmann 是的,我没注意到 =))))
猜你喜欢
  • 2019-02-19
  • 2021-05-21
  • 2020-12-15
  • 1970-01-01
  • 1970-01-01
  • 2019-08-15
  • 2018-10-27
  • 1970-01-01
  • 2022-01-23
相关资源
最近更新 更多