总结
路由分为 编程式路由和声明式路由定义路由对象
const router = new VueRouter({
routes:[
{
path: '/',
name: '',
redirect: {
},
component: 组件文件
},
{
path: '/index',
name: '',
component: index
}
]
})
new Vue({
el: '#app',
router
})
声明式路由
<div id="app">
<router-view></router-view>
<!-- 最简单的写法 -->
<router-link to="这里是要跳转的页面的path"></router-link>
<router-link to="这里是要跳转的页面的name"></router-link>
<!-- 第二种写法 -->
<router-link :to="{
path: '这里是要跳转的页面的path',
query: {
<!-- 要携带的参数 这里以键值对的形式书写 参数会显示在要去的页面的路由地址上 -->
}
}"></router-link>
<!-- 第三种写法 -->
<router-link :to="{
name: '这里是要跳转的页面的路由对象的name',
query: {
<!-- 要携带的参数 这里以键值对的形式书写 参数会显示在要去的页面的路由地址上 -->
}
}"></router-link>
<!-- 第四种写法 -->
<router-link :to="{
name: '这里是要跳转的页面的路由对象的name',
params: {
<!-- 要携带的参数 这里以键值对的形式书写 参数'不会'显示在要去的页面的路由地址上 -->
}
}"></router-link>
</div>
编程式路由写法
<button @click="pageTurn"></button>
methods: {
pageTurn() {
this.$router.push({
path: '要跳转的页面的路由对象的path'
})
this.$router.push({
name: '要跳转的页面的路由对象的name'
})
this.$router.push({
path: '要跳转的页面的路由对象的path',
query: {
}
})
this.$router.push({
name: '要跳转的页面的路由对象的name',
query: {
}
})
this.$router.push({
name: '要跳转的页面的路由对象的name',
params: {
}
})
}
}
导航守卫
全局导航守卫
const router = new VueRouter({
routes:[
{
path: '/',
name: '',
component: 组件文件,
beforeEnter: (to, from, next) => {
}
}
]
})
router.beforeEach((to, from, next) => {
})
Vue.component('child', {
template: '',
data() {
return {}
},
beforeRouteEnter(to, from, next) {
next(vm => {
})
}
beforeRouteUpdate(to,from, next) {
}
beforeRouteLeave(to,from, next){
}
})
new Vue({
el: '#app',
router
})
转载请注明原文地址:https://ipadbbs.8miu.com/read-56678.html