Vuejs2 vuejs组件中没有此上的$route。什么';怎么了?
我是vuejs的初学者。 我在单个文件.vue上启动了我的第一个vuejs组件 我想得到一条路线的参数。但是“这个”没有$route。这是窗户。 有人能帮我理解吗 在main.js中,我将路由器配置为:Vuejs2 vuejs组件中没有此上的$route。什么';怎么了?,vuejs2,Vuejs2,我是vuejs的初学者。 我在单个文件.vue上启动了我的第一个vuejs组件 我想得到一条路线的参数。但是“这个”没有$route。这是窗户。 有人能帮我理解吗 在main.js中,我将路由器配置为: var Vue = require('vue'); var VueRouter = require('vue-router'); Vue.use(VueRouter); const Home = require('./components/home.vue'); const Songbook
var Vue = require('vue');
var VueRouter = require('vue-router');
Vue.use(VueRouter);
const Home = require('./components/home.vue');
const Songbook = require('./components/songbook.vue');
var router = new VueRouter({
routes: [{
path: '/',
component: Home
}, {
path: '/songbook/:userId',
component: Songbook
}]
});
const app = new Vue({
router: router,
el : '#app',
template : '<router-view></router-view>'
});
var Vue=require('Vue');
var VueRouter=require('vue-router');
Vue.use(VueRouter);
const Home=require('./components/Home.vue');
const Songbook=require('./components/Songbook.vue');
var路由器=新的VueRouter({
路线:[{
路径:“/”,
组成部分:家庭
}, {
路径:'/songbook/:userId',
组成部分:歌曲集
}]
});
const app=新的Vue({
路由器:路由器,,
el:“#应用程序”,
模板:“”
});
在songbook.vue中,我希望在这里使用userId。$route.params,我有:
<template>
<div>
<h1>Songbook</h1>
</div>
</template>
<script>
var getPlaylists = function() {
console.log(this);
};
getPlaylists();
module.exports = {
data: function() {
return {
}
}
}
</script>
歌曲集
var getPlaylists=函数(){
console.log(this);
};
获取播放列表();
module.exports={
数据:函数(){
返回{
}
}
}
log(这)给了我窗口对象,而不是带有$route的对象。我不知道问题出在哪里。。。SOS:-)
致以最诚挚的问候。在本例中,
getPlaylist
函数只是一个常规函数,没有绑定到this
关键字。尽管乍一看可能与直觉相反,Vue只能将组件的上下文绑定到导出的配置对象(module.exports={…}
)中的方法,因此此
将可用,例如在数据
函数中,但在getPlaylist
中不可用
如果在config对象之外的函数中确实需要此
,则必须执行以下操作:
<script>
var getPlaylists = function() {
console.log(this);
};
module.exports = {
data: function() {
getPlaylists.call(this); // supply context to getPlaylists()
return { };
}
}
</script>
var getPlaylists=函数(){
console.log(this);
};
module.exports={
数据:函数(){
getPlaylists.call(this);//为getPlaylists()提供上下文
返回{};
}
}
谢谢!这是完整的逻辑。@Manu如果我的回答能解决你的问题,你能接受吗?