首页 > 其他分享 >vue-router

vue-router

时间:2022-08-17 09:14:34浏览次数:44  
标签:vue next import 组件 router 路由

路由基本使用

//main.js
import { createRouter, createWebHistory } from 'vue-router'
import HomeView from '../views/HomeView.vue'
import AboutView from '../views/AboutView.vue'

const routes = [
{
   path: '/',
   name: 'home',
   component: HomeView
},
{
   path: '/about',
   name: 'about',
   //路由元信息(自定义的)
   meta: {
     isAuth:false
  },
   // route level code-splitting
   // this generates a separate chunk (about.[hash].js) for this route
   // which is lazy-loaded when the route is visited.
   //component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
   component: AboutView
}
]
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

createApp(App).use(store).use(router).mount('#app')

 

全局前置路由、后置路由守卫

//前置守卫
router.beforeEach((to,from,next)=>{
 console.log(to,from)
 next()
})

//后置守卫
router.afterEach((to,from,next)=>{
 console.log(to,from)
 next()
})

 

 

独享守卫

const routes = [
{
   path: '/',
   name: 'home',
   component: HomeView,
   beforeEnter((to,from,next)=>{
   .....
})
}
]

 

可配置的API

const UserDetails = {
 template: `...`,
 beforeRouteEnter(to, from) {
   // 在渲染该组件的对应路由被验证前调用
   // 不能获取组件实例 `this` !
   // 因为当守卫执行时,组件实例还没被创建!
},
 beforeRouteUpdate(to, from) {
   // 在当前路由改变,但是该组件被复用时调用
   // 举例来说,对于一个带有动态参数的路径 `/users/:id`,在 `/users/1` 和 `/users/2` 之间跳转的时候,
   // 由于会渲染同样的 `UserDetails` 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。
   // 因为在这种情况发生的时候,组件已经挂载好了,导航守卫可以访问组件实例 `this`
},
 beforeRouteLeave(to, from) {
   // 在导航离开渲染该组件的对应路由时调用
   // 与 `beforeRouteUpdate` 一样,它可以访问组件实例 `this`
},
}

 

$$

$$

标签:vue,next,import,组件,router,路由
From: https://www.cnblogs.com/duty/p/16593701.html

相关文章