Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk melaksanakan pengalihan berbilang peringkat dalam Penghala Vue

Bagaimana untuk melaksanakan pengalihan berbilang peringkat dalam Penghala Vue

WBOY
WBOYasal
2023-09-15 10:57:521287semak imbas

如何在 Vue Router 中实现多级重定向

Cara melaksanakan pengalihan berbilang peringkat dalam Penghala Vue memerlukan contoh kod khusus

Penghala Vue ialah pengurus penghalaan rasmi Vue.js, digunakan untuk melaksanakan fungsi penghalaan bahagian hadapan. Dalam projek sebenar, kita sering menghadapi situasi yang memerlukan pengalihan berbilang peringkat, iaitu, apabila pengguna mengakses laluan, dia secara automatik akan melompat ke laluan lain berdasarkan syarat. Artikel ini akan memperkenalkan cara melaksanakan pengalihan berbilang peringkat dalam Penghala Vue dan memberikan contoh kod khusus.

Melaksanakan pengalihan berbilang peringkat dalam Penghala Vue boleh dicapai dengan mengkonfigurasi medan meta laluan. Medan meta ialah objek yang mengandungi maklumat tambahan Kami boleh menyesuaikan medan di dalamnya untuk melaksanakan pengalihan berbilang peringkat.

Pertama, kita perlu menentukan fungsi lompat untuk mengubah hala berdasarkan syarat. Katakan fungsi yang ingin kami laksanakan ialah melompat ke halaman log masuk secara automatik apabila pengguna tidak log masuk apabila pengguna log masuk tetapi tidak mempunyai kebenaran untuk mengakses halaman, secara automatik melompat ke halaman yang tidak dibenarkan.

// 跳转函数
function redirect(to) {
  if (!user.isAuthenticated) {
    // 没有登录,跳转到登录页
    return { path: '/login', query: { redirect: to.fullPath } }
  } else if (!user.hasPermission(to.meta.permission)) {
    // 没有权限,跳转到无权限页面
    return { path: '/unauthorized' }
  } else {
    // 有权限,继续访问原页面
    return { next: true }
  }
}

Dalam kod di atas, user.isAuthenticated menunjukkan sama ada pengguna log masuk dan user.hasPermission(permission) menunjukkan sama ada pengguna mempunyai kebenaran tertentu.

Seterusnya, kita perlu menggunakan fungsi lompat ini dalam konfigurasi penghalaan. Katakan kita mempunyai tiga laluan: halaman utama, halaman log masuk dan tiada halaman kebenaran.

// 路由配置
const routes = [
  {
    path: '/',
    name: 'home',
    component: Home,
    meta: {}
  },
  {
    path: '/login',
    name: 'login',
    component: Login,
    meta: {}
  },
  {
    path: '/unauthorized',
    name: 'unauthorized',
    component: Unauthorized,
    meta: {}
  }
]

Pada masa ini, medan meta dalam konfigurasi penghalaan kami kosong. Kita perlu mengkonfigurasinya mengikut situasi tertentu.

Pertama, kita perlu mengkonfigurasi medan meta laluan halaman utama untuk menentukan sama ada pengguna perlu log masuk.

// 路由配置
const routes = [
  {
    path: '/',
    name: 'home',
    component: Home,
    meta: { requiresAuth: true }
  },
  // ...
]

Dalam kod di atas, kami menambahkan medan requireAuth pada medan meta halaman utama, yang bermaksud bahawa pengguna perlu log masuk untuk mengakses halaman utama.

Seterusnya, kita perlu mengkonfigurasi medan meta laluan yang memerlukan kebenaran untuk menentukan sama ada pengguna mempunyai kebenaran.

// 路由配置
const routes = [
  {
    path: '/',
    name: 'home',
    component: Home,
    meta: { requiresAuth: true }
  },
  {
    path: '/admin',
    name: 'admin',
    component: Admin,
    meta: { requiresAuth: true, permission: 'admin' }
  },
  // ...
]

Dalam kod di atas, kami menambahkan medan kebenaran pada medan meta laluan yang memerlukan kebenaran, dan nilainya ialah nama kebenaran (dengan andaian di sini bahawa pentadbir ialah kebenaran yang diperlukan).

Akhir sekali, kita perlu menggunakan fungsi lompat dalam sebelumSetiap cangkuk laluan untuk mengubah hala berdasarkan medan meta.

// 路由配置
const router = new VueRouter({
  routes
})

// 全局路由守卫
router.beforeEach((to, from, next) => {
  const redirectTo = redirect(to)
  if (redirectTo.path) {
    // 跳转到指定页面
    next(redirectTo)
  } else {
    // 继续访问原页面
    next()
  }
})

Dalam kod di atas, kami menggunakan fungsi lompat dalam cangkuk beforeEach untuk menentukan sama ada ubah hala diperlukan. Jika fungsi lompat mengembalikan objek dengan medan laluan, ini bermakna anda perlu mengubah hala ke halaman yang ditentukan jika tidak, ini bermakna tiada ubah hala dan anda akan terus mengakses halaman asal.

Pada ketika ini, kami telah menyelesaikan keseluruhan proses melaksanakan pengalihan berbilang peringkat dalam Penghala Vue. Konfigurasikan mengikut keadaan tertentu untuk mencapai lompatan automatik dalam keadaan yang berbeza.

Untuk meringkaskan, langkah-langkah untuk melaksanakan pengalihan berbilang peringkat dalam Penghala Vue adalah seperti berikut:

  1. Tentukan fungsi lompat untuk mengembalikan laluan yang diubah hala berdasarkan syarat.
  2. Tambah medan tersuai dalam medan meta dalam konfigurasi penghalaan untuk pertimbangan.
  3. Gunakan fungsi lompat di bahagian sebelumSetiap cangkuk laluan untuk mengubah hala berdasarkan medan meta.

Di atas ialah contoh kod khusus tentang cara melaksanakan pengalihan berbilang peringkat dalam Penghala Vue. Harap artikel ini dapat membantu anda.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pengalihan berbilang peringkat dalam Penghala Vue. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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