vue-router 是 Vue.js 官方的路由插件,適合用于構建標簽頁應用。Vue 的標簽頁應用是基于路由和組件的,路由用于設定訪問路徑,并將路徑和組件映射起來,vue-router 會把各個組件渲染到正確的地方。
首先,.vue中的內容非常簡單,<router-link>創建標簽,并指定路徑,<router-view>渲染路由匹配到的組件。
<template> <div id="account"> <p class="tab"> <!-- 使用 router-link 組件來導航. --> <!-- 通過傳入 `to` 屬性指定鏈接. --> <!-- <router-link> 默認會被渲染成一個 `<a>` 標簽 --> <router-link to="/account/course">我的課程</router-link> <!-- 注意這里的路徑,course和order是account的子路由 --> <router-link to="/account/order">我的訂單</router-link> </p> <!-- 路由出口 --> <!-- 路由匹配到的組件將渲染在這里 --> <router-view></router-view> </div> </template>
結構很簡單,我們有一個賬戶頁 account,account 中還包含兩個標簽頁,分別是課程 course 和訂單 order。
在寫路由的時候,需要注意頁面間層級關系,開始我是這樣寫的:
import Vue from 'vue' import Router from 'vue-router' import Account from ... import CourseList from ... import OrderList from ... Vue.use(Router) export default new Router({ routes: [ { path: '/account', name: 'account', component: Account }, { path: '/my-course', name: 'course', component: CourseList }, { path: '/my-order', name: 'order', component: OrderList } ] })
這樣做會使得點擊 <router-link> 時,跳轉到新頁面,而不是在 <router-view> 中顯示組件。
正確的路由應該這樣寫:
routes: [ { path: '/account', name: 'account', component: Account, children: [ {name: 'course', path: 'course', component: CourseList}, {name: 'order', path: 'order', component: OrderList} ] } ]
注冊一個根路由 account,將 course 和 order 注冊為 account 中的子路由,和 <router-link> 中 to="account/course" 對應。
剛開始做 Vue,這個問題困擾了很久,特此記錄。
關于vue.js組件的教程,請大家點擊專題vue.js組件學習教程、Vue.js前端組件學習教程,進行學習。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答