Rumah > hujung hadapan web > View.js > teks badan

Mari kita bincangkan tentang penghalaan dalam Vue3 dan menganalisis secara ringkas kaedah konfigurasi penghalaan

青灯夜游
Lepaskan: 2021-12-21 10:35:02
ke hadapan
3779 orang telah melayarinya

Artikel ini akan membawa anda melalui penghalaan dalam Vue3 dan bercakap tentang konfigurasi asas penghalaan, konfigurasi penghalaan dinamik, mod penghalaan, ubah hala, dll. Saya harap ia akan membantu anda.

Mari kita bincangkan tentang penghalaan dalam Vue3 dan menganalisis secara ringkas kaedah konfigurasi penghalaan

[Cadangan berkaitan: "tutorial vue.js"]

Konfigurasi asas penghalaan

1. Pasang pemalam

npm install vue-router@next --save
Salin selepas log masuk

2. Buat fail routers.ts

3. Perkenalkan komponen dan konfigurasikan laluan dalam routers.ts.

import { createRouter,createWebHashHistory } from 'vue-router';
// 引入组件
import Home from './components/Home.vue';
import News from './components/News.vue';
import User from './components/User.vue';

const router = createRouter({
  history: createWebHashHistory(),
  routes: [
    {path: '/', component: Home},
    {path: '/news', component: News},
    {path: '/user', component: User},
  ]
})

export default router;
Salin selepas log masuk

4. Lekapkan fail penghalaan ke vue dalam main.ts.

import { createApp } from 'vue'
import App from './App.vue'
import routers from './routers';

// createApp(App).mount('#app')

const app = createApp(App);
app.use(routers);
app.mount('#app');
Salin selepas log masuk

5 Selepas komponen yang menggunakan penghalaan melekapkan pautan penghala melalui komponen paparan penghala atau pautan penghala

<template>
  <img alt="Vue logo" src="./assets/logo.png">
  <ul>
    <li>
      <router-link to="/">首页</router-link>
    </li>
    <li>
      <router-link to="/news">新闻</router-link>
    </li>
    <li>
      <router-link to="/user">用户</router-link>
    </li>
  </ul>

  <router-view></router-view>
</template>
Salin selepas log masuk

, anda hanya perlu memasang komponen yang sepadan dalam komponen Masukkan laluan yang ditentukan pada laluan halaman untuk melengkapkan lompatan, dan pautan penghala melaksanakan penghalaan dalam bentuk teg untuk lompatan.

Konfigurasi penghalaan dinamik

Konfigurasikan penghalaan dalam route.ts seperti berikut dan konfigurasikan penghalaan dinamik melalui /:aid.

//配置路由
const router = createRouter({

    history: createWebHashHistory(),
    routes: [
        { path: &#39;/&#39;, component: Home , alias: &#39;/home&#39; },
        { path: &#39;/news&#39;, component: News },
        { path: &#39;/user&#39;, component: User },
        { path: &#39;/newscontent/:aid&#39;, component: NewsContent },
    ], 
})
Salin selepas log masuk

Apabila melompat melalui pautan penghala, rentetan templat dan titik bertindih + to diperlukan.

<ul>
    <li v-for="(item, index) in list" :key="index">
        <router-link  :to="`/newscontent/${index}`"> {{item}}</router-link>
    </li>
</ul>
Salin selepas log masuk

Dapatkan nilai yang diluluskan oleh laluan dinamik melalui ini.$route.params.

mounted(){
    // this.$route.params 获取动态路由的传值
    console.log(this.$route.params)
}
Salin selepas log masuk

Jika kita ingin melaksanakan pemindahan nilai yang serupa dengan GET, kita boleh menggunakan kaedah berikut

1 Konfigurasikan laluan seperti biasa laluan.

const router = createRouter({

    history: createWebHashHistory(),
    routes: [
        { path: &#39;/&#39;, component: Home , alias: &#39;/home&#39; },
        { path: &#39;/news&#39;, component: News },
        { path: &#39;/user&#39;, component: User },
        { path: &#39;/newscontent&#39;, component: NewsContent },
    ], 
})
Salin selepas log masuk

2. Lompatan pautan penghala dalam bentuk tanda soal.

<router-link  :to="`/newscontent?aid=${index}`"> {{item}}</router-link>
Salin selepas log masuk

3 Dapatkan nilai dapatkan melalui ini.$route.query.

console.log(this.$route.query);
Salin selepas log masuk

Navigasi atur cara laluan (laluan lompat JS)

Hanya nyatakan melalui ini.$router.push.

  this.$router.push({
    path: &#39;/home&#39;
  })
Salin selepas log masuk

Jika anda ingin melaksanakan pemindahan nilai dapatkan, anda boleh menggunakan kaedah berikut.

this.$router.push({
    path: &#39;/home&#39;,
    query: {aid: 14}
  })
}
Salin selepas log masuk

Penghalaan dinamik perlu menggunakan kaedah berikut.

  this.$router.push({
    path: &#39;/home/123&#39;,
    // query: {aid: 14}
  })
Salin selepas log masuk

Mod penghalaan

Mod cincang

Ciri biasa mod Cincang ialah penghalaan halaman mengandungi tanda pon .

const router = createRouter({

    history: createWebHashHistory(),
    routes: [
        ...,
    ], 
})
Salin selepas log masuk

mod sejarah HTML5

  • Memperkenalkan createWebHistory.

  • Atribut sejarah dalam item konfigurasi penghala ditetapkan kepada createWebHistory().

import { createRouter, createWebHistory } from &#39;vue-router&#39;

//配置路由
const router = createRouter({
    history: createWebHistory(),
    routes: [
        ...
    ], 
})
Salin selepas log masuk

Nota: Selepas menghidupkan mod Sejarah HTML5, anda perlu mengkonfigurasi statik pseudo semasa menerbitkan ke pelayan.

Mengkonfigurasi kaedah pseudo-statik:

https://router.vuejs.org/zh/guide/essentials/history-mode.html#Contoh konfigurasi belakang

Laluan bernama

Keadaan umum

  • Konfigurasikan atribut nama apabila mentakrifkan laluan

{ path: &#39;/news&#39;, component: News,name:"news" }
Salin selepas log masuk
  • Lepaskan objek untuk melompat

<router-link :to="{name: &#39;news&#39;}">新闻</router-link>
Salin selepas log masuk

Lepasi nilai melalui GET

  • Konfigurasikan atribut nama apabila mentakrifkan laluan

{ path: &#39;/newscontent&#39;, component: NewsContent, name: "content" },
Salin selepas log masuk
  • Masukkan objek termasuk pertanyaan

<li v-for="(item, index) in list" :key="index">
    <router-link  :to="{name: &#39;content&#39;,query: {aid: index}}"> {{item}}</router-link>
</li>
Salin selepas log masuk

Melalui penghalaan dinamik

  • Tentukan penghalaan dinamik dan nyatakan atribut nama

{ path: &#39;/userinfo/:id&#39;, name: "userinfo", component: UserInfo }
Salin selepas log masuk
  • Masukkan objek termasuk params

<router-link :to="{name: &#39;userinfo&#39;,params: {id: 123}}">跳转到用户详情</router-link>
Salin selepas log masuk

Peralaan terprogram

sangat serupa dengan kaedah di atas.

<button @click="this.$router.push({name: &#39;userinfo&#39;,params: {id: 666}})">点击跳转</button>
Salin selepas log masuk

Ubah hala laluan

{ path: &#39;&#39;, redirect: "/home" },   // 路由重定向
{ path: &#39;/home&#39;, component: Home },
Salin selepas log masuk

Alias ​​laluan

Dalam contoh di bawah, akses laluan orang dan akses laluan alias adalah konsisten .

{ path: &#39;/user&#39;, component: User, alias: &#39;/people&#39; }
Salin selepas log masuk

alias juga boleh menjadi tatasusunan.

{ path: &#39;/user&#39;, component: User, alias: [&#39;/people&#39;,&#39;/u&#39;]}
Salin selepas log masuk

Bentuk penghalaan dinamik.

{ path: &#39;/userinfo/:id&#39;, name: "userinfo", component: UserInfo, alias: &#39;/u/:id&#39; }
Salin selepas log masuk

Penghalaan bersarang

Senario aplikasi penghalaan bersarang biasanya pada bar navigasi.

  • Tentukan penghalaan bersarang

{
  path: &#39;/user&#39;, component: User,
  children: [
    { path: &#39;&#39;, redirect: "/user/userlist" },
    { path: &#39;userlist&#39;, component: UserList },
    { path: &#39;useradd&#39;, component: UserAdd }
  ]
}
Salin selepas log masuk
  • pautan penghala dan kandungan paparan paparan penghala bersama-sama

<div class="left">
  <ul>
    <li>
      <router-link to="/user/userlist">用户列表</router-link>
    </li>
    <li>
      <router-link to="/user/useradd">增加用户</router-link>
    </li>
  </ul>
</div>
<div class="right">
  <router-view></router-view>
</div>
Salin selepas log masuk

Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Pengenalan kepada Pengaturcaraan! !

Atas ialah kandungan terperinci Mari kita bincangkan tentang penghalaan dalam Vue3 dan menganalisis secara ringkas kaedah konfigurasi penghalaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:juejin.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan