代码仓库直接扔上来了
https://gitee.com/XaiverSun/adminpage
就是通过默认的 vuecli 生成的项目,在main.js
中
import VueRouter from 'vue-router';
Vue.use(VueRouter);
在App.vue
中引入sidebar.vue
组件
<template>
<div id="app">
<sidebar></sidebar>
</div>
</template>
<script>
import sidebar from "./components/sidebar";
export default {
name: "app",
components: {
sidebar,
}
}
</script>
sidebar 中的内容已经简化
<template>
<div id="sidebar-container">
<header id="sidebar-container-header">
后台管理系统
</header>
<div class="sidebar-unit">
<router-link to="/">
</router-link>
</div>
</div>
</template>
<script>
export default {
name: "sidebar"
}
</script>
就这么简单。因为 css 我觉得应该无关紧要就没贴上来了。。问题项目的全部代码都在开头的地址
NMD,为什么。。。
求解答,谢谢大佬。
=========
补充下控制台红色报错信息
第一条
vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in render: "TypeError: Cannot read property 'resolve' of undefined"
found in
---> <RouterLink>
<Sidebar> at src/components/sidebar.vue
<App> at src/App.vue
<Root>
第二条
vue.runtime.esm.js?2b0e:1888 TypeError: Cannot read property 'resolve' of undefined
at Proxy.render (vue-router.esm.js?c478:1026)
at VueComponent.Vue._render (vue.runtime.esm.js?2b0e:3548)
at VueComponent.updateComponent (vue.runtime.esm.js?2b0e:4066)
at Watcher.get (vue.runtime.esm.js?2b0e:4479)
at new Watcher (vue.runtime.esm.js?2b0e:4468)
at mountComponent (vue.runtime.esm.js?2b0e:4073)
at VueComponent.Vue.$mount (vue.runtime.esm.js?2b0e:8415)
at init (vue.runtime.esm.js?2b0e:3118)
at createComponent (vue.runtime.esm.js?2b0e:5978)
at createElm (vue.runtime.esm.js?2b0e:5925)
<router-view>也试过,也不 OK。</router-view>
1
crs0910 2020-01-08 22:16:03 +08:00
|
2
Newyorkcity OP @crs0910 能否麻烦直接指出代码中的问题?
|
3
shuirong1997 2020-01-08 22:39:25 +08:00 1
问题是这个:
main.js ``` new Vue({ router, render: h => h(App) }).$mount("#app"); ``` 你没有在 new Vue 实例的时候传入 router 参数。 参考这个代码: https://github.com/shuiRong/VueCnodeJS/blob/master/src/main.js |
4
Newyorkcity OP @shuirong1997
感谢 new Vue({ render: h => h(App), router: new VueRouter({}) }).$mount('#app'); 这样确实就 OK 了。。。 不过这样感觉有点别扭啊。。 我是打算左边一个侧边栏就 sidebar 模块负责 linker-to,右边一个 mainbody 模块负责 link-view 的,然后吧 routes 写到 mainbody 模块去。那这样说明必须写在 app.vue 中么?可是我觉得 app.vue 并没有这块的职责啊。。负责相应路径展现不同模块的应该是 mainbody 模块。 |
5
FakeLeung 2020-01-08 23:25:14 +08:00
|
6
arslion 2020-01-08 23:34:48 +08:00
要不要试试把口头禅 NMD 改成 TMD
|
7
FakeLeung 2020-01-08 23:35:52 +08:00
其实稍微去看下文档(一楼附上的),再看看官方 demo,不难看出哪里出问题了。
|
8
shuirong1997 2020-01-09 00:06:01 +08:00 1
@Newyorkcity #4 「必须写在 app.vue 中」?你看错了吧,routes 的配置必须写传给 new Vue,也就是`main.js`入口 JS 文件中而不是 App.vue 。
另外,你 link/view 怎么布局和上面传 routes 配置无关:必须传参,然后你随便怎么布局都行。 |
9
QingStone 2020-01-09 01:49:57 +08:00 via Android
建议多看看掘金
|
10
Newyorkcity OP @FakeLeung
@arslion ?你们都不知道那个表情包么? https://zh.moegirl.org/zh-hans/%E4%BD%A0%E5%A6%88%E7%9A%84%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88 这就是个梗啊,我根本就没有骂人的意思。。 |
11
FakeLeung 2020-01-09 09:27:59 +08:00
|
12
Newyorkcity OP @FakeLeung
准确地说,这个链接里一个字我都没认真看。。看到图是一样的我就发过来了。 至于冒犯什么的,一种双向筛选吧。我是觉得这个图特别搞笑,所以这句话也是个平和的粗鄙之语。但如果别人觉得这种话就冒犯到了他,他自然是有这样的权利。但我也不会感到抱歉什么的,只会明白彼此之间性情相差甚远,没有成为朋友的可能。 |