首先,在点击按钮时应该触发的是@click="aaa()"
。从错误信息可以看到是因为this.$router
未定义导致的。另外,根据代码看到已经引入了VueRouter,但并没有实例化,需要修改main.js
,以下是修改后的代码:
//导入Vue
import Vue from 'vue'
//导入App.vue组件
import App from './App'
//导入ElementUI
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
//导入baidu地图
import BaiduMap from 'vue-baidu-map'
//导入wot-design组件库
import WotDesign from 'wot-design'
import 'wot-design/lib/theme-default/index.css'
//导入路由
import router from '../router/index.js'
//使用ElementUI和wot-design组件库
Vue.use(WotDesign)
Vue.use(ElementUI);
Vue.use(BaiduMap, {
ak: 'xxxxxxxxxxxxx' //这里需要自己填写百度地图的AK
});
//创建Vue实例
new Vue({
el: '#app',
router, //挂载路由
components: { App },
template: '<App/>',
render: h => h(App)
})
此外,在/router/index.js
文件中,需要将VueRouter实例化后导出。因为此处路由表只有一个路由,所以可以将其简写为以下形式:
import Vue from 'vue'
import VueRouter from 'vue-router'
import zhifu from '../src/components/zhifu'
Vue.use(VueRouter)
export default new VueRouter({
routes:[
{
path: '/zhifu',
component: zhifu,
},
]
})
最后,为了解决路由跳转时的问题,尝试将以下代码添加到main.js
中:
VueRouter.prototype.push=function(location,resolve,reject){
if(resolve&&reject){
originPush.call(this,location,resolve,reject);
}else{
originPush.call(this,location,()=>{},()=>{});
}
}
以上修改应该就可以解决问题了。