Rumah hujung hadapan web View.js Vue-Router: Bagaimana untuk menggunakan pengawal laluan untuk melindungi laluan?

Vue-Router: Bagaimana untuk menggunakan pengawal laluan untuk melindungi laluan?

Dec 17, 2023 pm 06:28 PM
vue-router pengawal laluan Lindungi laluan

Vue-Router: 如何使用路由守卫保护路由?

Vue-Router: Bagaimana untuk menggunakan pengawal laluan untuk melindungi laluan?

Dalam pembangunan Vue.js, Vue-Router ialah alat penting untuk pengurusan penghalaan bahagian hadapan. Selain membolehkan kami melaksanakan lompatan dan peralihan halaman dengan mudah, Vue-Router juga menyediakan mekanisme pengawal laluan yang membolehkan kami melakukan beberapa operasi tersuai sebelum dan selepas lompatan laluan, seperti pengesahan dan pengalihan semula.

Untuk lebih memahami penggunaan pengawal laluan, kami akan memperkenalkannya dalam tiga bahagian: pengawal global, pengawal eksklusif laluan dan pengawal dalam komponen.

  1. Global guard

Global guard ialah pengawal yang akan dilaksanakan sebelum dan selepas setiap lompatan laluan dalam keseluruhan aplikasi Kami boleh mendaftarkannya melalui kaedah yang disediakan oleh Vue-Router. Terdapat tiga kaedah pengawal global, iaitu beforeEach, beforeResolve dan afterEach. beforeEachbeforeResolveafterEach

在main.js文件中,我们可以通过如下代码进行注册:

import router from './router'

router.beforeEach((to, from, next) => {
  // 这里是你的自定义逻辑
  if (to.meta.requiresAuth && !isAuthenticated()) {
    next('/login') // 重定向到登录页
  } else {
    next()
  }
})

router.beforeResolve((to, from, next) => {
  // 这里是你的自定义逻辑
  next()
})

router.afterEach(() => {
  // 这里是你的自定义逻辑
})
Salin selepas log masuk

beforeEach方法中,我们可以根据实际情况进行鉴权判断,如果用户未登录且目标路由需要登录权限,我们可以通过next('/login')将用户重定向到登录页。

beforeResolve方法在路由解析完毕后被调用,可以在该方法中执行一些异步操作。

afterEach方法在路由跳转完成后被调用,可以用于执行一些全局的清理操作。

  1. 路由独享守卫

路由独享守卫是针对某个具体路由进行的配置,只有在该路由中才会被起作用。我们可以在路由配置中使用beforeEnter属性来进行注册。

{
  path: '/admin',
  component: Admin,
  beforeEnter: (to, from, next) => {
    // 这里是你的自定义逻辑
    if (!isAdmin()) {
      next('/access-denied') // 重定向到访问拒绝页
    } else {
      next()
    }
  }
}
Salin selepas log masuk

在路由独享守卫中,我们可以根据实际需求进行逻辑判断,例如检查用户是否有管理员权限,如果没有,则重定向到访问拒绝页。

  1. 组件内守卫

除了全局守卫和路由独享守卫外,Vue-Router还提供了组件内的守卫,用于在组件内部进行路由跳转的操作。组件内的守卫包括beforeRouteEnterbeforeRouteUpdatebeforeRouteLeave

Dalam fail main.js, kami boleh mendaftar melalui kod berikut:

export default {
  beforeRouteEnter (to, from, next) {
    // 这里是你的自定义逻辑
    if (!isAuthenticated()) {
      next('/login') // 重定向到登录页
    } else {
      next()
    }
  },
  beforeRouteUpdate (to, from, next) {
    // 这里是你的自定义逻辑
    next()
  },
  beforeRouteLeave (to, from, next) {
    // 这里是你的自定义逻辑
    next()
  }
}
Salin selepas log masuk
Dalam kaedah beforeEach, kami boleh membuat pertimbangan pengesahan berdasarkan situasi sebenar Jika pengguna tidak log masuk dan laluan sasaran memerlukan Untuk kebenaran log masuk, kami boleh mengubah hala pengguna ke halaman log masuk melalui next('/login').

Kaedah beforeResolve dipanggil selepas laluan diselesaikan dan beberapa operasi tak segerak boleh dilakukan dalam kaedah ini.

Kaedah afterEach dipanggil selepas lompatan laluan selesai dan boleh digunakan untuk melakukan beberapa operasi pembersihan global. 🎜
    🎜Pengawal eksklusif laluan🎜🎜🎜Pengadang eksklusif laluan dikonfigurasikan untuk laluan tertentu dan hanya akan berkuat kuasa di laluan itu. Kita boleh menggunakan atribut beforeEnter dalam konfigurasi penghalaan untuk mendaftar. 🎜rrreee🎜Dalam pengawal eksklusif penghalaan, kami boleh membuat pertimbangan logik berdasarkan keperluan sebenar, seperti menyemak sama ada pengguna mempunyai hak pentadbir, dan jika tidak, mengubah hala ke halaman penafian akses. 🎜
      🎜Pengadang dalam komponen🎜🎜🎜Selain pengawal global dan pengawal eksklusif laluan, Vue-Router juga menyediakan pengawal intra-komponen untuk menghalakan operasi lompatan dalam komponen. Pengawal dalam komponen termasuk beforeRouteEnter, beforeRouteUpdate dan beforeRouteLeave. 🎜rrreee🎜Di dalam pengawal di dalam komponen, kami boleh melakukan beberapa operasi tersuai mengikut keperluan sebenar, seperti menyemak sama ada pengguna telah log masuk, dan jika tidak, mengubah hala ke halaman log masuk. 🎜🎜Ringkasan: 🎜🎜Melalui tiga kaedah di atas, kami boleh menggunakan pengawal laluan untuk melindungi laluan dan melaksanakan beberapa operasi tersuai, seperti pengesahan, pengalihan, dsb. Bergantung pada keperluan, kami boleh memilih jenis pengawal yang sesuai untuk konfigurasi bagi mencapai pengurusan penghalaan yang lebih fleksibel dan boleh diselenggara. Dalam pembangunan sebenar, kami boleh menggunakan pengawal ini secara munasabah mengikut keperluan khusus dan senario perniagaan untuk meningkatkan keselamatan aplikasi dan pengalaman pengguna. 🎜

Atas ialah kandungan terperinci Vue-Router: Bagaimana untuk menggunakan pengawal laluan untuk melindungi laluan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Saya mengalami ralat vue-router 'NavigationDuplicated: Mengelakkan navigasi berlebihan ke lokasi semasa' dalam aplikasi Vue saya - bagaimana untuk menyelesaikannya? Saya mengalami ralat vue-router 'NavigationDuplicated: Mengelakkan navigasi berlebihan ke lokasi semasa' dalam aplikasi Vue saya - bagaimana untuk menyelesaikannya? Jun 24, 2023 pm 02:20 PM

Ralat vue-router "NavigationDuplicated:Avoidedredundantnavigationtocurrentlocation" yang ditemui dalam aplikasi Vue – bagaimana untuk menyelesaikannya? Vue.js menjadi semakin popular dalam pembangunan aplikasi bahagian hadapan sebagai rangka kerja JavaScript yang pantas dan fleksibel. VueRouter ialah perpustakaan kod Vue.js yang digunakan untuk pengurusan penghalaan. Namun, kadangkala

Artikel yang menerangkan penghalaan Vue secara terperinci: vue-router Artikel yang menerangkan penghalaan Vue secara terperinci: vue-router Sep 01, 2022 pm 07:43 PM

Artikel ini akan memberi anda penjelasan terperinci tentang Vue-Router dalam baldi keluarga Vue, dan belajar tentang pengetahuan penghalaan saya harap ia akan membantu anda.

Bagaimana untuk menyelesaikan masalah 'Ralat: Mengelakkan navigasi berlebihan ke lokasi semasa' apabila menggunakan vue-router dalam aplikasi Vue? Bagaimana untuk menyelesaikan masalah 'Ralat: Mengelakkan navigasi berlebihan ke lokasi semasa' apabila menggunakan vue-router dalam aplikasi Vue? Jun 24, 2023 pm 05:39 PM

Apabila menggunakan vue-router dalam aplikasi Vue, mesej ralat "Ralat: Avoidedredundantnavigationtocurrentlocation" kadangkala muncul. Mesej ralat ini bermaksud "mengelakkan navigasi berlebihan ke lokasi semasa" dan biasanya disebabkan oleh mengklik pautan yang sama berulang kali atau menggunakan laluan penghalaan yang sama. Jadi, bagaimana untuk menyelesaikan masalah ini? Gunakan pengubah suai tepat apabila menentukan penghala

Bagaimana untuk menyelesaikan masalah 'Ralat: Gagal menyelesaikan komponen async: xxx' apabila menggunakan vue-router dalam aplikasi Vue? Bagaimana untuk menyelesaikan masalah 'Ralat: Gagal menyelesaikan komponen async: xxx' apabila menggunakan vue-router dalam aplikasi Vue? Jun 24, 2023 pm 06:28 PM

Menggunakan vue-router ialah cara biasa untuk melaksanakan kawalan penghalaan dalam aplikasi Vue. Walau bagaimanapun, apabila menggunakan vue-router, ralat "Ralat: Failedtoresolveasynccomponent:xxx" kadangkala berlaku, yang disebabkan oleh ralat memuatkan komponen tak segerak. Dalam artikel ini, kami akan meneroka masalah ini dan memberikan penyelesaian. Fahami prinsip pemuatan komponen tak segerak Dalam Vue, komponen boleh dibuat secara serentak atau tak segerak.

Vue dan Vue-Router: Bagaimana untuk berkongsi data antara komponen? Vue dan Vue-Router: Bagaimana untuk berkongsi data antara komponen? Dec 17, 2023 am 09:17 AM

Vue dan Vue-Router: Bagaimana untuk berkongsi data antara komponen? Pengenalan: Vue ialah rangka kerja JavaScript yang popular untuk membina antara muka pengguna. Vue-Router ialah pengurus penghalaan rasmi Vue, digunakan untuk melaksanakan aplikasi satu halaman. Dalam aplikasi Vue, komponen ialah unit asas untuk membina antara muka pengguna. Dalam banyak kes kita perlu berkongsi data antara komponen yang berbeza. Artikel ini akan memperkenalkan beberapa kaedah untuk membantu anda mencapai perkongsian data dalam Vue dan Vue-Router, dan

Vue-Router: Bagaimana untuk menggunakan maklumat meta penghalaan untuk mengurus penghalaan? Vue-Router: Bagaimana untuk menggunakan maklumat meta penghalaan untuk mengurus penghalaan? Dec 18, 2023 pm 01:21 PM

Vue-Router: Bagaimana untuk menggunakan maklumat meta penghalaan untuk mengurus laluan? Pengenalan: Vue-Router ialah pengurus penghalaan rasmi Vue.js, yang boleh membantu kami membina aplikasi satu halaman (SPA) dengan cepat. Sebagai tambahan kepada fungsi penghalaan biasa, Vue-Router juga menyokong penggunaan maklumat meta penghalaan untuk mengurus dan mengawal penghalaan. Metainformation penghalaan ialah atribut tersuai yang boleh dilampirkan pada laluan, yang boleh membantu kami melaksanakan beberapa logik khas atau kawalan kebenaran. 1. Apakah penghalaan metamaklumat? Maklumat meta penghalaan ialah

Bagaimana untuk menyelesaikan masalah 'Ralat: Komponen laluan tidak sah: xxx' apabila menggunakan vue-router dalam aplikasi Vue? Bagaimana untuk menyelesaikan masalah 'Ralat: Komponen laluan tidak sah: xxx' apabila menggunakan vue-router dalam aplikasi Vue? Jun 25, 2023 am 11:52 AM

Vue ialah rangka kerja bahagian hadapan yang popular yang membolehkan pembangun membina aplikasi web yang cekap dan boleh digunakan semula dengan cepat. Vue-router ialah pemalam dalam rangka kerja Vue yang membantu pembangun mengurus penghalaan dan navigasi aplikasi dengan mudah. Walau bagaimanapun, apabila menggunakan Vue-router, anda kadangkala menghadapi ralat biasa: "Error:Invalidroutecomponent:xxx". Artikel ini akan menerangkan punca dan penyelesaian kepada ralat ini. Sebabnya terletak pada Vu

Bagaimana untuk menyelesaikan masalah 'Uncaught TypeError: Cannot read property 'push' of undefined' apabila menggunakan vue-router dalam aplikasi Vue? Bagaimana untuk menyelesaikan masalah 'Uncaught TypeError: Cannot read property 'push' of undefined' apabila menggunakan vue-router dalam aplikasi Vue? Aug 18, 2023 pm 09:24 PM

Baru-baru ini saya cuba menggunakan vue-router dalam aplikasi Vue tetapi menghadapi masalah: "UncaughtTypeError:Cannotreadproperty'push'ofundefined". Apakah punca masalah ini dan bagaimana untuk menyelesaikannya? Mula-mula, mari kita fahami vue-router. vue-router ialah pemalam pengurusan penghalaan rasmi Vue.js, yang boleh membantu kami membina aplikasi satu halaman (SPA

See all articles