Heim > Web-Frontend > View.js > Hauptteil

Wie wird verschachteltes Routing in Vue Router implementiert?

WBOY
Freigeben: 2023-07-22 10:31:54
Original
593 Leute haben es durchsucht

Wie wird verschachteltes Routing in Vue Router implementiert?

Vue.js ist ein beliebtes JavaScript-Framework zum Erstellen von Benutzeroberflächen. Vue Router ist ein offizielles Plug-in für Vue.js, das zum Aufbau eines Routing-Systems für Single-Page-Anwendungen verwendet wird. Vue Router bietet eine einfache und flexible Möglichkeit, die Navigation zwischen verschiedenen Seiten und Komponenten Ihrer Anwendung zu verwalten.

Nested Routing ist eine sehr nützliche Funktion in Vue Router, die problemlos mit komplexen Seitenstrukturen umgehen kann. Durch verschachteltes Routing können wir mehrere untergeordnete Routen unter einer übergeordneten Route definieren, um die hierarchische Struktur der Seite zu implementieren. In diesem Artikel erfahren Sie, wie Sie verschachteltes Routing in Vue Router verwenden.

  1. Zuerst müssen wir eine Vue.js-Anwendung erstellen und Vue Router einführen. Wir können die Vue-CLI verwenden, um ein neues Vue.js-Projekt zu erstellen, oder Vue Router manuell zu einem vorhandenen Projekt hinzufügen.
  2. Als nächstes müssen wir den Vue Router konfigurieren. In der Vue-Router-Konfigurationsdatei können wir verschiedene Routen und die jeder Route entsprechenden Komponenten definieren. In dieser Konfigurationsdatei können wir das Feld children verwenden, um untergeordnete Routen zu definieren. Zum Beispiel: children字段来定义子级路由。例如:
import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from './components/Home.vue'
import About from './components/About.vue'
import Contact from './components/Contact.vue'
import Products from './components/Products.vue'
import ProductDetail from './components/ProductDetail.vue'

Vue.use(VueRouter)

const routes = [
  {
    path: '/',
    component: Home
  },
  {
    path: '/about',
    component: About
  },
  {
    path: '/contact',
    component: Contact
  },
  {
    path: '/products',
    component: Products,
    children: [
      {
        path: ':id',
        component: ProductDetail
      }
    ]
  }
]

const router = new VueRouter({
  routes
})

export default router
Nach dem Login kopieren

在上面的代码中,我们定义了一个父级路由/products,以及一个子级路由:id。子级路由:id使用了动态路由参数,可以匹配不同的产品详情页面。

  1. 在应用程序的入口文件(通常是main.js)中,我们需要将Vue Router添加到Vue实例中。例如:
import Vue from 'vue'
import App from './App.vue'
import router from './router'

new Vue({
  render: h => h(App),
  router
}).$mount('#app')
Nach dem Login kopieren
  1. 现在我们可以在组件中使用嵌套路由了。我们可以在父级组件中使用<router-view>来展示当前路由对应的组件,并在子级组件中使用<router-view>来展示子级路由对应的组件。

在上述示例中,我们可以创建一个Products组件用于展示产品列表,以及一个ProductDetail组件用于展示单个产品的详细信息。在父级组件Products的模板中,我们可以添加<router-view>来展示子级路由对应的组件。例如:

<template>
  <div>
    <h2>Products</h2>
    <ul>
      <li v-for="product in products" :key="product.id">
        <router-link :to="'/products/' + product.id">{{ product.name }}</router-link>
      </li>
    </ul>
    <router-view></router-view>
  </div>
</template>
Nach dem Login kopieren

在子级组件ProductDetail中,我们可以使用$route.params

<template>
  <div>
    <h3>{{ product.name }}</h3>
    <p>{{ product.description }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      product: {}
    }
  },
  created() {
    const productId = this.$route.params.id
    // 根据productId从后端获取数据,并将数据赋值给product
    // ...
  }
}
</script>
Nach dem Login kopieren
Im obigen Code definieren wir eine übergeordnete Route /products und eine untergeordnete Route :id. Das untergeordnete Routing :id verwendet dynamische Routing-Parameter, um verschiedene Produktdetailseiten abzugleichen.

    In der Eintragsdatei der Anwendung (normalerweise main.js) müssen wir den Vue-Router zur Vue-Instanz hinzufügen. Zum Beispiel:

rrreee

    Jetzt können wir verschachteltes Routing in Komponenten verwenden. Wir können <router-view> in der übergeordneten Komponente verwenden, um die der aktuellen Route entsprechende Komponente anzuzeigen, und <router-view> in der untergeordneten Komponente verwenden, um dies anzuzeigen Zeigen Sie die Komponenten an, die untergeordneten Routen entsprechen.
🎜Im obigen Beispiel können wir eine Products-Komponente erstellen, um die Produktliste anzuzeigen, und eine ProductDetail-Komponente, um die detaillierten Informationen eines einzelnen Produkts anzuzeigen . In der Vorlage der übergeordneten Komponente Products können wir <router-view> hinzufügen, um die der untergeordneten Route entsprechenden Komponenten anzuzeigen. Zum Beispiel: 🎜rrreee🎜In der untergeordneten Komponente ProductDetail können wir $route.params verwenden, um dynamische Routing-Parameter zu erhalten. Zum Beispiel: 🎜rrreee🎜Durch die obigen Schritte können wir verschachteltes Routing im Vue Router verwenden. Übergeordnetes Routing kann zum Anzeigen übergeordneter Komponenten verwendet werden, und es kann auch untergeordnetes Routing zum Anzeigen untergeordneter Komponenten enthalten. Mithilfe dynamischer Routing-Parameter können wir unterschiedliche Inhalte in untergeordneten Komponenten basierend auf unterschiedlichen Parametern anzeigen. 🎜🎜Zusammenfassung: 🎜Verschachteltes Routing ist eine sehr nützliche Funktion in Vue Router, die uns beim Aufbau komplexer Seitenstrukturen helfen kann. In diesem Artikel stellen wir kurz die Verwendung von verschachteltem Routing in Vue Router vor und geben Codebeispiele. Ich hoffe, dass die Leser durch das Studium dieses Artikels die grundlegende Verwendung des verschachtelten Routings in Vue Router beherrschen, um es besser auf ihre eigenen Vue.js-Projekte anwenden zu können. 🎜

Das obige ist der detaillierte Inhalt vonWie wird verschachteltes Routing in Vue Router implementiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage