【发布时间】:2018-04-09 13:44:52
【问题描述】:
我越来越不确定
this.$router
在 App.vue 和其他组件中未定义。我找不到解决方案。
这里是我的 main.js 的一部分
Vue.use(VueRouter);
Vue.use(VueResource);
const router = new VueRouter({
routes: Routes,
mode: 'history'
});
new Vue({
el: '#app',
render: h => h(App),
router
});
这里是我在 main.js 中导入的 router.js。
export default [
{path: '/', component: Home, name: 'home'},
{path: '/home', component: Home, name: 'home2'},
{path: '/user/login', component: Login, name: 'userLogin'}
];
谢谢你:)
编辑
我在这样的脚本标签中使用它,
<script>
import HeadNavBar from './components/HeadNavBar.vue';
import SideBarNav from './components/SideBarNav.vue';
import Home from './components/Home.vue';
console.log(this.$router,pus); //the undefined type
export default {
name: 'app',
data() {
return {
isLogin: true
}
},
components: {
'app-headnav': HeadNavBar,
'app-sidebarnav': SideBarNav,
'app-home': Home
}
}
</script>
但是当我将它移到方法部分时,我得到了我想要的响应。
export default {
name: 'app',
data() {
return {
isLogin: true
}
},
components: {
'app-headnav': HeadNavBar,
'app-sidebarnav': SideBarNav,
'app-home': Home
},methods: {
myFunc: function() {
console.log(this.$router,pus); // this gave result
}
}
}
【问题讨论】:
-
问题可能在于您对
this的使用(也许您正在使用箭头函数)。请更新问题以显示更多上下文以帮助解决问题。 -
谢谢 :) 我在组件的脚本标签中使用它,比如编码纯 js。但是当我使用该方法时,我得到了我应该有的反应。
标签: javascript vue.js vuejs2 vue-router