首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vue路由器:无法读取属性'forEach‘的未定义在createRouterMatcher

Vue路由器:无法读取属性'forEach‘的未定义在createRouterMatcher
EN

Stack Overflow用户
提问于 2021-03-14 03:58:32
回答 1查看 3.1K关注 0票数 1

试图实现vue路由器。获取错误:

代码语言:javascript
运行
复制
Cannot read property 'forEach' of undefined
    at createRouterMatcher 

Vue版本:@vue/cli 4.5.9。我有两个视图/页面已经格式化并准备实现。我的主页基本上是index.vue。我试过和index.js和main.js一起玩,但似乎没能让它发挥作用。

src/main.js

代码语言:javascript
运行
复制
import { createApp } from 'vue'
import { routes } from './router/index'
import { createRouter, createWebHistory } from 'vue-router'
require('dotenv').config();
import App from './App.vue'
import './index.css'

let app = createApp(App)
let router = createRouter({
  history: createWebHistory(),
  routes,
})

app.use(router)

app.mount('#app')

src/路由器/index.js

代码语言:javascript
运行
复制
import Index from '../views/index.vue'
import About from '../views/about.vue'

const routes =  [
    {
        path: "/",
        name: "Index",
        component: Index
    },
    {
        path:"/about",
        name: "About",
        component: About
    }
]

export default routes;

src>App.vue

代码语言:javascript
运行
复制
<template>
  <div id="app">
    <router-view/>
  </div>
</template>

<script>

export default {
  name: 'App',
}
</script>

我的观点index.vue和about.vue都有相应的export default { name: 'pagename'}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-14 04:20:46

您使用的是默认导出,这意味着routes不是一个命名的导出,不应该使用括号。这将解决问题:

代码语言:javascript
运行
复制
import routes from './router/index'  // no brackets

但是,我建议执行路由器文件中的所有路由器设置,并导出路由器而不是路由:

路由器/index.js

代码语言:javascript
运行
复制
import { createRouter, createWebHistory } from 'vue-router'
import Index from '../views/index.vue'
import About from '../views/about.vue'

const routes =  [
    {
        path: "/",
        name: "Index",
        component: Index
    },
    {
        path:"/about",
        name: "About",
        component: About
    }
]

let router = createRouter({
  history: createWebHistory(),
  routes,
})

export default router;

main.js

代码语言:javascript
运行
复制
import { createApp } from 'vue'
import router from './router/index'
require('dotenv').config();
import App from './App.vue'
import './index.css'

let app = createApp(App)
app.use(router)
app.mount('#app')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66620955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档