Home >Web Front-end >Vue.js >Vue-Router: How to use routing hook functions to handle routing changes?

Vue-Router: How to use routing hook functions to handle routing changes?

WBOY
WBOYOriginal
2023-12-18 16:42:271213browse

Vue-Router: 如何使用路由钩子函数来处理路由变化?

Vue-Router: How to use routing hook function to handle routing changes?

Introduction:
Vue-Router is the official routing management plug-in of Vue.js. It can help us implement the routing function of single-page applications in Vue.js applications. In addition to basic routing navigation functions, Vue-Router also provides a series of hook functions that allow us to perform corresponding operations when routing changes. This article will introduce Vue-Router’s hook functions and how to use them to handle routing changes.

1. Hook functions of Vue-Router
In Vue-Router, there are three types of hook functions: global hook functions, route-exclusive hook functions and hook functions within components.

  1. Global hook function
    The global hook function will be called when the navigation of each route is triggered. Vue-Router provides the following global hook functions:
  2. beforeEach(to, from, next): Called before route navigation, it can be used for permission verification or global pre-operations.
  3. afterEach(to, from): Called after route navigation, it can be used to perform global post-operations.
  4. Routing exclusive hook function
    Routing exclusive hook function is only called for a specific route. Vue-Router provides the following route-exclusive hook functions:
  5. beforeEnter(to, from, next): It is called before entering a route and can be used to perform pre-operations on the route.
  6. Hook function within the component
    The hook function within the component is called when the component is navigated to the route. These hook functions are similar to the life cycle hook functions of Vue.js, including:
  7. beforeRouteEnter(to, from, next): called before the route enters the component, but the component instance has not been created yet and cannot be Access this of the component instance.
  8. beforeRouteUpdate(to, from, next): Called when the component already exists but the route changes, you can access this of the component instance.
  9. beforeRouteLeave(to, from, next): Called when leaving the current route, you can access this of the component instance.

2. How to use hook functions to handle routing changes
Next, we will use sample code to demonstrate how to use Vue-Router's hook functions to handle routing changes.

  1. Global hook function example

    // 创建路由实例
    const router = new VueRouter({
      routes: [
     // 路由配置
      ]
    });
    
    // 全局前置守卫
    router.beforeEach((to, from, next) => {
      // 在路由导航之前进行权限验证
      if (to.meta.authRequired && !store.state.isAuthenticated) {
     next('/login');
      } else {
     next();
      }
    });
    
    // 全局后置钩子
    router.afterEach((to, from) => {
      // 在路由导航之后进行一些操作,比如记录日志
      logRouteChange(to, from);
    });
  2. Routing exclusive hook function example

    // 路由配置
    const routes = [
      {
     path: '/admin',
     component: AdminComponent,
     beforeEnter: (to, from, next) => {
       // 在进入 AdminComponent 之前进行权限验证
       if (to.meta.authRequired && !store.state.isAdmin) {
         next('/login');
       } else {
         next();
       }
     }
      }
    ];
  3. Inside component Example of hook function

    // 组件配置
    export default {
      // 组件内的钩子函数
      beforeRouteEnter(to, from, next) {
     // 在路由进入组件前进行一些操作
     next();
      },
      beforeRouteUpdate(to, from, next) {
     // 在路由变化时进行一些操作
     next();
      },
      beforeRouteLeave(to, from, next) {
     // 在离开当前路由时进行一些操作
     next();
      }
    }

Conclusion:
By using Vue-Router’s hook function, we can handle routing changes more flexibly, including permission verification and global pre- and post-processing operations and perform some operations within the component. I hope this article will help you understand and use routing hook functions.

The above is the detailed content of Vue-Router: How to use routing hook functions to handle routing changes?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn