VUE导航钩子
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>导航钩子</title>
</head>
<body>
<div id="app">
<div>
<router-link to="/">首页</router-link>
<router-link to="/login">登录</router-link>
<router-link to="/post">帖子管理</router-link>
</div>
<div>
<router-view></router-view>
</div>
</div>
<script src="https://cdn.bootcss.com/vue/2.6.11/vue.js"></script>
<script src="https://cdn.bootcss.com/vue-router/2.7.0/vue-router.js"></script>
<script src="index.js"></script>
</body>
</html>
JS
var routes = [{
path: '/',
component: {
template: '<div><h1>首页</h1></div>'
},
},
{
path: '/login',
component: {
template: '<div><h1>登录</h1></div>'
}
},
{
path: '/post',
component: {
template: '<div><h1>帖子管理</h1></div>'
}
},
]
var router = new VueRouter({
routes: routes
})
router.beforeEach(function (to, from, next) {
var logged_in = false;
if (!logged_in && to.path == '/post') {
next('/login');
} else {
next();
}
})
new Vue({
el: '#app',
router: router
})