Teknologian jakaminen

Puhutaanpa reittisieppaajan roolista vue:ssa yksityiskohtaisesti

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Vuessa reittisieppaajia käytetään pääasiassa sieppaamiseen ja käsittelyyn ennen navigointia tietylle reitille tai poistuttaessa tietystä reitistä. Tämän mekanismin avulla kehittäjät voivat suorittaa tiettyä logiikkaa ennen reitin navigointia tai sen jälkeen, kuten luvan tarkistaminen, tietojen lataaminen, sivuhyppyjä jne.

Vue Routerissa reittisieppaajat voidaan toteuttaa seuraavilla tavoilla:

  1. Globaali ennen vartijoita:

    • router.beforeEach(to, from, next): Rekisteröi yleinen esivartija Kun reitin navigointi käynnistyy, vartija kutsutaan ennen kuin reitti muuttuu.
    • Tarkoitus: Soveltuu globaalien lupien varmentamiseen, sivun latauksen edistymispalkin hallintaan jne.
      1. router.beforeEach((to, from, next) => {
      2. // 检查用户权限
      3. if (!userAuthenticated) {
      4. next('/login'); // 未认证跳转到登录页
      5. } else {
      6. next(); // 已认证则放行
      7. }
      8. });

2.Global Resolve Guards:

  • router.beforeResolve(to, from, next): Rekisteröi yleinen jäsennyssuoja, jota kutsutaan yleisen etusuojan jälkeen ja ennen kuin navigointi vahvistetaan.
    1. router.beforeResolve((to, from, next) => {
    2. // 在导航被确认之前,进行数据加载等操作
    3. fetchData().then(() => {
    4. next();
    5. });
    6. });

3. Reittikohtainen vartija:

  • Lisää se suoraan reititysmääritysobjektiinbeforeEnterKenttä vartiointilogiikan lisäämiseksi yhdelle reitille.
  1. const route = {
  2. path: '/profile',
  3. component: Profile,
  4. beforeEnter: (to, from, next) => {
  5. // 检查用户是否有权限访问该路由
  6. if (userHasAccess) {
  7. next();
  8. } else {
  9. next('/403'); // 没有权限跳转到403页面
  10. }
  11. }
  12. };

 

4.Osien sisäiset suojukset:

  • Käytetty sisäosissabeforeRouteEnterbeforeRouteUpdate, jabeforeRouteLeaveHook-toiminnot, näitä toimintoja kutsutaan, kun reitti navigoi nykyiseen komponenttiin, kun nykyistä komponenttia käytetään uudelleen ja kun nykyinen komponentti lähtee.
  1. export default {
  2. beforeRouteEnter (to, from, next) {
  3. // 在路由导航进入该组件前执行逻辑
  4. next(vm => {
  5. // 可以访问实例 `vm`
  6. });
  7. },
  8. beforeRouteUpdate (to, from, next) {
  9. // 在当前路由改变,但是该组件被复用时调用
  10. // 可以访问组件实例 `this`
  11. // 通常用于更新组件的数据
  12. next();
  13. },
  14. beforeRouteLeave (to, from, next) {
  15. // 在导航离开该组件的对应路由时调用
  16. // 可以访问组件实例 `this`
  17. next();
  18. }
  19. }

Näiden reitin sieppaajien mekanismit voivat auttaa kehittäjiä hallitsemaan sovellusten navigointiprosessia eri tasoilla ja skenaarioissa sekä toteuttamaan toimintoja, kuten käyttöoikeuksien valvontaa, tietojen esilatausta ja sivuhyppyjä, jolloin käyttöliittymäsovellusten interaktiivinen käyttökokemus voidaan hallita ja optimoida paremmin.