renren-fast-vue,写了三个页面(不是动态路由),想要写个路由守卫,目的是实现不允许直接在浏览器地址栏进行跳转页面
项目是前后端分离的架构,使用renren-generator逆向生成后端代码。后端基本配置了数据库就没什么问题了。注意generator的配置文件,包名按照自己的项目来。
回答:
为了防止用户直接在浏览器地址栏输入页面路径进行跳转,我们需要在renren-fast-vue中使用路由守卫。
import Vue from 'vue';
import App from './App';
import router from './router';
Vue.config.productionTip = false;
new Vue({
el: '#app',
router,
template: '<App/>',
components: { App }
});
import Vue from 'vue';
import Router from 'vue-router';
import Home from '@/views/Home.vue';
import About from '@/views/About.vue';
import Contact from '@/views/Contact.vue';
Vue.use(Router);
const router = new Router({
mode: 'history',
routes: [
{
path: '/',
name: 'home',
component: Home
},
{
path: '/about',
name: 'about',
component: About,
beforeEnter: (to, from, next) => {
// 在进入about页面之前执行的代码,如判断用户是否登录等
console.log('before enter about page');
next(); // 必须调用next()方法
}
},
{
path: '/contact',
name: 'conatct',
component: Contact,
beforeEnter: (to, from, next) => {
// 在进入contact页面之前执行的代码,如判断用户是否登录等
console.log('before enter contact page');
next(); // 必须调用next()方法
}
}
]
});
export default router;
在上面示例代码中,我们为About和Contact页面添加了beforeEnter守卫,用于限制用户进入页面之前进行一些操作,如判断用户是否登录等。在守卫代码中,需要调用next()方法来继续导航。
router.beforeEach((to, from, next) => {
// 在进入路由之前执行的代码,如判断用户是否登录等
console.log('before enter page');
next(); // 必须调用next()方法
})
以上就是在renren-fast-vue中使用路由守卫的具体实现方式。通过添加守卫,我们可以更好地保护应用的安全性和稳定性。