Vue $route is not defined

For those who getting the error after adding this

TypeError: Cannot read property '$route' of undefined

We need to use a regular function instead of ES6 arrow functions

data: function() {
    return {
      usertype: this.$route.params.type
    };
  },

This worked for me.


import Vue from 'vue'
import Router from 'vue-router';

Vue.use(Router)

const router = new VueRouter({
    routes: [
        {path : '/videos',  name: 'allVideos', component: Videos },
        {path : '/videos/:id/edit', name: 'editVideo', component: VideoEdit },
    ]
});

new Vue({
    el: "#app",
    router,
    created: function(){
        if(!localStorage.hasOwnProperty('auth_token')) {
            window.location.replace('/account/login');
        }

        this.$router.push({ name: 'allVideos' });
    }
})

Thanks to Sandeep Rajoria

we found solution, need to use this.$route except $route inside a component