成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

快速上手Vue Router和組合式API:創(chuàng)建靈活可定制的布局

開發(fā) 前端
Vue Router 是在 Vue.js 單頁應(yīng)用程序中創(chuàng)建路由的事實(shí)標(biāo)準(zhǔn)。但是,你是否知道,除了使用它將路由映射到頁面組件之外,還可以使用它來組合頁面布局?這是一個(gè)有趣的建議。讓我們看看如何實(shí)現(xiàn)。

該教程從基礎(chǔ)開始,介紹了Vue Router的概念,如何配置路由以及如何使用組合式API。它還介紹了如何在Vue Router中使用組合式API來創(chuàng)建布局。教程還包括如何使用路由鉤子函數(shù)和路由元信息來控制布局。

Vue Router 是在 Vue.js 單頁應(yīng)用程序中創(chuàng)建路由的事實(shí)標(biāo)準(zhǔn)。但是,你是否知道,除了使用它將路由映射到頁面組件之外,還可以使用它來組合頁面布局?這是一個(gè)有趣的建議。讓我們看看如何實(shí)現(xiàn)。

假設(shè)我們正在構(gòu)建一個(gè)博客,在該博客中,某些頁面可能在主要內(nèi)容的兩側(cè)都有側(cè)邊欄:

圖片

其他頁面只需要在內(nèi)容旁邊放置一個(gè)側(cè)邊欄,而且主內(nèi)容前后的位置可以變化。

圖片

而其他頁面則根本不需要側(cè)邊欄。

圖片

我們該如何完成這個(gè)任務(wù)?選項(xiàng)1是為側(cè)邊欄創(chuàng)建組件,并根據(jù)需要在每個(gè)頁面中包含它們。例如, AboutShow.vue 將獲得一個(gè)類似于以下內(nèi)容的路由記錄:

// router/index.js
{
path: '/about',
component: () => import('../pages/AboutShow.vue')
},

而相應(yīng)的頁面組件可能是這樣的:

// *AboutShow.vue
<template>
<div class="flex ...">
<SidebarOne />
<main>....</main>
<SidebarTwo />
</div>
</template>

<script setup>
import SidebarOne from "@/components/SidebarOne"
import SidebarTwo from "@/components/SidebarTwo"
</script>*

無論如何,關(guān)于頁面始終會(huì)與側(cè)邊欄相耦合。在大多數(shù)情況下,這可能并不是什么大問題。然而,讓我們考慮一種替代方法,即在路由器級別而不是頁面級別組成布局。

命名視圖

為了實(shí)現(xiàn)這一點(diǎn),我們將為路由記錄提供 components? (復(fù)數(shù))選項(xiàng),而不是 component (單數(shù))選項(xiàng):

{
path: '/about',
components: {
default: () => import('@/pages/AboutShow.vue'),
LeftSidebar: () => import('@/components/SidebarOne.vue'),
RightSidebar: () => import('@/components/SidebarTwo.vue'),
},
},

在這里,我們定義了關(guān)于路由應(yīng)該包括一個(gè)默認(rèn)組件,即關(guān)于頁面。這就是將顯示在RouterView?組件中。但是,它還應(yīng)該包括一個(gè) LeftSidebar? 組件,該組件映射到 SidebarOne? ,以及一個(gè) RightSidebar? 組件,該組件映射到 SidebarTwo 。

現(xiàn)在,為了讓 LeftSidebar? 和 RightSidebar? 組件知道在哪里顯示,我們必須使用額外的路由器視圖,稱為命名視圖,以及我們的默認(rèn)路由器視圖。我們還可以將路由器視圖包裝在帶有一些 Tailwind? 類的 div 中,以便美觀地布局。

<!-- App.vue -->
<template>
<!--...-->
<div class="sm:flex container p-5 mx-auto content justify-betweenflex-wrap">
<RouterView class="view main-content w-full order-2"></RouterView>
<RouterView name="LeftSidebar" class="view order-1 w-full"></RouterView>
<RouterView name="RightSidebar" class="view order-3 w-full"></RouterView>
</div>
<!--...-->
</template>

請注意,新的路由器視圖具有與我們提供給路由記錄的組件屬性的鍵相匹配的名稱屬性( LeftSidebar? 和 RightSidebar )

最后,這一次頁面本身可以完全排除側(cè)邊欄,結(jié)果是一樣的。

// *AboutShow.vue
<template>
<div>
<main>....</main>
</div>
</template>

圖片

這可能看起來有點(diǎn)繞,但現(xiàn)在很酷的是,有了這些額外的命名視圖,我們可以在任何新的路由記錄上靈活地添加一個(gè)或兩個(gè)側(cè)邊欄。

側(cè)邊欄

圖片

{
path: '/posts/:id',
components: {
default: () => import('@/pages/PostShow.vue'),
RightSidebar: () => import('@/components/SidebarTwo.vue'),
},
},

左側(cè)的側(cè)邊欄

圖片

//router/index.js
{
path: '/posts/:id',
components: {
default: () => import('@/pages/PostShow.vue'),
LeftSidebar: () => import('@/components/SidebarOne.vue'),
},

右側(cè)邊欄

圖片

//router/index.js
{
path: '/posts/',
components: {
default: () => import('@/pages/PostIndex.vue'),
RightSidebar: () => import('@/components/SidebarOne.vue'),
},

原文:https://vueschool.io/articles/vuejs-tutorials/composing-layouts-with-vue-router/

責(zé)任編輯:武曉燕 來源: 大遷世界
相關(guān)推薦

2024-01-12 07:22:49

Vue組合式props

2022-06-13 08:39:21

Vue3API

2024-06-20 13:50:53

Vue 3API開發(fā)

2025-03-14 08:01:19

2022-03-24 15:28:43

Vue開發(fā)框架

2020-07-10 11:30:29

組合式架構(gòu)傳統(tǒng)存儲存儲

2022-03-11 12:31:04

Vue3組件前端

2025-03-26 10:29:22

Vue3前端API

2015-01-28 09:59:00

IBM混合云

2017-11-02 08:44:50

組合式存儲架構(gòu)

2024-06-25 12:20:31

2025-02-25 08:51:19

2021-12-10 08:13:02

MatplotlibpythonAPI

2022-02-22 07:37:26

VuePinia態(tài)管理庫

2022-06-21 12:09:18

Vue差異

2021-12-15 08:23:42

Vue3 插件Vue應(yīng)用

2021-12-01 08:11:44

Vue3 插件Vue應(yīng)用

2025-01-20 00:00:06

Vue開發(fā)工具庫

2020-12-01 08:34:31

Vue3組件實(shí)踐

2010-08-04 10:40:40

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲精品9999 | 亚洲自拍偷拍视频 | 毛片在线免费 | 精品在线播放 | 国产成人精品免高潮在线观看 | 日本久久久一区二区三区 | 亚洲精品中文字幕在线观看 | 国产三级大片 | 亚洲精品一区二区三区四区高清 | 久久精品国产a三级三级三级 | 中文字幕av在线 | 亚洲视频 欧美视频 | 国产一区二区在线免费观看 | 久久高清亚洲 | 青娱乐av| 国产在线网站 | 精品久久久一区二区 | 九九久久精品 | 亚洲三级在线观看 | 国产在线精品一区二区三区 | 亚洲国产一区二区三区在线观看 | 久久亚洲国产精品 | 欧区一欧区二欧区三免费 | 久久99精品国产 | 国产精品五区 | 中文字幕国产视频 | 午夜视频一区二区三区 | 欧美99| 久久成人精品视频 | 国产成人精品一区二区三区在线 | 亚洲+变态+欧美+另类+精品 | 91色在线 | 在线播放亚洲 | 中文字幕综合 | 不卡一区二区在线观看 | 一a一片一级一片啪啪 | 国内精品久久久久久久影视简单 | 国产高清一区二区三区 | 黄色大片在线视频 | 欧美一区在线看 | 日韩一区二区三区四区五区六区 |