有没有办法在 main.js 中访问 vue js Vue Session
Is there a way to accees vue js VueSession in main.js
我在 main.js 中有以下设置:
import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router'
import Home from './views/Home.vue'
import Login from './views/Login.vue'
import Profile from './views/Profile.vue'
import Simulations from './views/Simulations.vue'
import VueSimpleAlert from "vue-simple-alert"
import StatisticPage from './views/StatisticPage.vue'
import VueSession from 'vue-session'
import Users from './views/Users.vue'
Vue.use(VueSimpleAlert)
Vue.use(VueRouter)
Vue.use(VueSession)
Vue.config.productionTip = false
const routes = [
{path: '/', name:'Login', component: Login },
{path: '/users', name:'Users', component: Users},
{path :'/home', name:'Home', component: Home},
{path: '/subject/:Pid', name: 'Profile', component: Profile},
{path: '/subject/:Pid/simulations', name:'Simulations', component: Simulations},
{path: '/subject/:Pid/simulations/:Sid/statistics', name:'Statistics', component: StatisticPage}
]
const router = new VueRouter({
routes,
mode: 'history'
})
router.beforeEach((to, from, next) => {
if(to.name !== 'Login'){
if(this.$session.get('token')){
next()
}else{
next({ name: 'Login'})
next()
}
}else{
next()
}
})
new Vue({
router,
render: h => h(App),
}).$mount('#app')
export default router
如您所见,我正在尝试访问会话信息,但我一直收到 $session 未定义的错误。
我怎样才能在这里访问路由器中的会话信息?
如果你想在路由器中访问 Vue 实例,请使用 router.app
而不是 this
更改此行:
this.$session.get('token')
对此:
router.app.$session.get('token')
您可以在以下位置阅读有关路由器实例属性的更多信息:https://router.vuejs.org/api/#router-instance-properties
我在 main.js 中有以下设置:
import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router'
import Home from './views/Home.vue'
import Login from './views/Login.vue'
import Profile from './views/Profile.vue'
import Simulations from './views/Simulations.vue'
import VueSimpleAlert from "vue-simple-alert"
import StatisticPage from './views/StatisticPage.vue'
import VueSession from 'vue-session'
import Users from './views/Users.vue'
Vue.use(VueSimpleAlert)
Vue.use(VueRouter)
Vue.use(VueSession)
Vue.config.productionTip = false
const routes = [
{path: '/', name:'Login', component: Login },
{path: '/users', name:'Users', component: Users},
{path :'/home', name:'Home', component: Home},
{path: '/subject/:Pid', name: 'Profile', component: Profile},
{path: '/subject/:Pid/simulations', name:'Simulations', component: Simulations},
{path: '/subject/:Pid/simulations/:Sid/statistics', name:'Statistics', component: StatisticPage}
]
const router = new VueRouter({
routes,
mode: 'history'
})
router.beforeEach((to, from, next) => {
if(to.name !== 'Login'){
if(this.$session.get('token')){
next()
}else{
next({ name: 'Login'})
next()
}
}else{
next()
}
})
new Vue({
router,
render: h => h(App),
}).$mount('#app')
export default router
如您所见,我正在尝试访问会话信息,但我一直收到 $session 未定义的错误。 我怎样才能在这里访问路由器中的会话信息?
如果你想在路由器中访问 Vue 实例,请使用 router.app
而不是 this
更改此行:
this.$session.get('token')
对此:
router.app.$session.get('token')
您可以在以下位置阅读有关路由器实例属性的更多信息:https://router.vuejs.org/api/#router-instance-properties