vue-router實現(xiàn)tab標簽頁(單頁面)詳解
vue-router 是 Vue.js 官方的路由插件,適合用于構建標簽頁應用。Vue 的標簽頁應用是基于路由和組件的,路由用于設定訪問路徑,并將路徑和組件映射起來,vue-router 會把各個組件渲染到正確的地方。
首先,.vue中的內(nèi)容非常簡單,<router-link>創(chuàng)建標簽,并指定路徑,<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前端組件學習教程,進行學習。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
基于Vue?+?ElementUI實現(xiàn)可編輯表格及校驗
這篇文章主要給大家介紹了基于Vue?+?ElementUI?實現(xiàn)可編輯表格及校驗,文中有詳細的代碼講解和實現(xiàn)思路,講解的非常詳細,有需要的朋友可以參考下2023-08-08
詳解Vue路由History mode模式中頁面無法渲染的原因及解決
這篇文章主要介紹了詳解Vue路由History mode模式中頁面無法渲染的原因及解決,非常具有實用價值,需要的朋友可以參考下2017-09-09
vue 動態(tài)樣式綁定 class/style的寫法小結
這篇文章主要介紹了vue 動態(tài)樣式綁定 class/style的寫法小結,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03
vite+vue3+tsx項目打包后動態(tài)路由無法加載頁面的問題及解決
這篇文章主要介紹了vite+vue3+tsx項目打包后動態(tài)路由無法加載頁面的問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03

