Vuejs2 vuejs组件中没有此上的$route。什么';怎么了?

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

我是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 = 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如果我的回答能解决你的问题,你能接受吗?