补充:我解决了。。。忙了这么久,发现是没有给路由的路径加"/"的原因, 但是我看有些代码里确实没有加斜杠啊
原问题如下:
图
点击商品/评论/商家按钮, hash变化了, 但是
index.html
main.js
import Vue from 'vue' import App from './App' import VueRouter from 'vue-router' import goods from 'components/goods/goods' import ratings from 'components/ratings/ratings' import seller from 'components/seller/seller' // goods.vue、ratings.vue、seller.vue模板里的内容是各自的filename Vue.use(VueRouter) const router = new VueRouter({ routes: [ { path: 'goods', component: goods }, { path: 'ratings', component: ratings }, { path: 'seller', component: seller } ] }) /* eslint-disable no-new */ new Vue({ router, components: { App, // 注册路由组件 goods, ratings, seller }, template: '' }).$mount('#app')
App.vue
商品
评论
商家
let routes = [ { path: '/goods', component: goods }, { path: '/ratings', component: ratings }, { path: '/sellers', component: sellers } ] const router = new VueRouter({ routes, }) new Vue({ router, render: h => h(App) }).$mount('#app')
同学你在做饿了么的app吧
/path
绝对路径
path
相对路径
所以假设现在路径是/goods
,你点了另外一个路径就变成/goods/ratings
了,然后找不到对应的路由