最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue?Router組合布局用法詳解

 更新時間:2023年05月09日 14:18:32   作者:童心蟲鳴  
今天我們用一種新的布局方式,使用路由視圖來實現(xiàn)布局樣式,本文將給大家介紹如何使用Vue?Router組合布局,文中有詳細(xì)的代碼示例供大家參考,感興趣的同學(xué)可以跟著小編一起學(xué)習(xí)

常用的布局

我們首先看一個我們常用的布局,左右布局。

app 頁面

我們通常寫一個這樣的布局,思路是這樣的:

  • 我們首先要寫三個組件meun.vueheader.vuecollect.vue
  • 在app添加引入單個組件
 # app.vue
 <template>
   <div class="contain flex p10 mt40 ml40">
     <Menu class="menu width-200 flex-center mr10" />
     <div class="flex1 flex-column">
       <Header class="header mb10 p10 flex-center"></Header>
       <router-view class="view-main"></router-view>
     </div>
   </div>
 </template>

 <script setup>
 import Header from './views/home/header.vue';
 import Menu from './views/home/menu.vue';
 </script>

about 頁面

如果我們的about頁面,像這樣的,沒有menu或者header

我們可以根據(jù)路由判斷是否顯示menu或者header組件

<template>
  <div class="contain flex p10 mt40 ml40">
    <Menu class="menu width-200 flex-center mr10" v-if="route.name !== 'about'" />
    <div class="flex1 flex-column">
      <Header class="header mb10 p10 flex-center"></Header>
      <router-view class="view-main"></router-view>
    </div>
  </div>
</template>

<script setup>
import { useRoute } from 'vue-router';
import Header from './views/home/header.vue';
import Menu from './views/home/menu.vue';

const route = useRoute();
</script>

思考??

這是我們的常規(guī)操作,如果我們有些頁面不需要menu或者header頁面,我們都是要引入的,還有判斷是否顯示隱藏。

怎么才能不寫這么多判斷,又能提高性能的同時,還能實現(xiàn)我們的效果呢?

命名視圖

我們這里使用命令視圖, 來實現(xiàn)我們想要的效果

有時候想同時 (同級) 展示多個視圖,而不是嵌套展示,例如創(chuàng)建一個布局,有 sidebar (側(cè)導(dǎo)航) 和 main (主內(nèi)容) 兩個視圖,這個時候命名視圖就派上用場了。你可以在界面中擁有多個單獨命名的視圖,而不是只有一個單獨的出口。如果 router-view 沒有設(shè)置名字,那么默認(rèn)為 default。

<router-view class="view left-sidebar" name="LeftSidebar"></router-view>
<router-view class="view main-content"></router-view>
<router-view class="view right-sidebar" name="RightSidebar"></router-view>

Router組合布局

項目目錄結(jié)構(gòu)

router-demo
├── src
│   ├── App.vue
│   ├── assets
│   │   └── vue.svg
│   ├── main.js
│   ├── router
│   │   └── index.js
│   ├── store
│   │   └── index.js
│   ├── utils
│   │   └── request.js
│   └── views
│       ├── about
│       │   ├── api
│       │   │   └── index.js
│       │   ├── index.vue
│       │   ├── router
│       │   │   └── index.js
│       │   └── store
│       │       └── index.js
│       ├── home
│       │   ├── header.vue
│       │   └── menu.vue
│       └── main
│           ├── api
│           │   └── index.js
│           ├── index.vue
│           ├── router
│           │   └── index.js
│           └── store
│               └── index.js
└── vite.config.js
  • 修改app.vue視圖顯示

注意看下??:添加了兩個router-view命名視圖

<template>
   <div class="contain flex p10 mt40 ml40">
     <router-view class="menu width-200 flex-center mr10" name="Menu" />
     <div class="flex1 flex-column">
       <router-view class="header mb10 p10 flex-center" name="Headers" />
       <router-view class="view-main"></router-view>
     </div>
   </div>
 </template>

 <script setup>

 </script>
  • 修改main文件夾中的route.js

這里 注意??:component修改components

// mian/router/index.js
export default [
   {
     path: '/main',
     name: 'main',
     components: {
       default: () => import('../index.vue'),
       Headers: () => import('@/views/home/header.vue'),
       Menu: () => import('@/views/home/menu.vue'),
     },
   },
 ];

  • 修改about文件夾的router.js
// about/router/index.js
export default [
   {
     path: '/about',
     name: 'about',
     components: {
       default: () => import('../index.vue'),
       Headers: () => import('@/views/home/header.vue'),
     },
   },
 ];

如果想顯示哪個視圖,就在相對應(yīng)的路由components添加相應(yīng)的視圖組件,這樣是不是方便了許多。

結(jié)論

  • 不用在app.vue添加判斷是否顯示隱藏headermenu組件
  • 根據(jù)路由動態(tài)顯示布局樣式

這只是提示多一種新的布局方式,方便我們開發(fā),當(dāng)然還是選擇合適自己的寫法。

以上就是Vue Router組合布局用法詳解的詳細(xì)內(nèi)容,更多關(guān)于Vue Router組合布局的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Vue表單快速上手

    Vue表單快速上手

    工作中vue表單使用的最多的莫過于input、textarea、select等,原生js的基礎(chǔ)上vue通過雙向數(shù)據(jù)綁定等,實現(xiàn)了自己獨有的一套指令,這是react中沒有的部分,也算是vue的一大特色
    2022-09-09
  • Vue 應(yīng)用中結(jié)合vux使用微信 jssdk的方法

    Vue 應(yīng)用中結(jié)合vux使用微信 jssdk的方法

    今天小編就為大家分享一篇Vue 應(yīng)用中結(jié)合vux使用微信 jssdk的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • vue項目中解決 IOS + H5 滑動邊界橡皮筋彈性效果(解決思路)

    vue項目中解決 IOS + H5 滑動邊界橡皮筋彈性效果(解決思路)

    最近遇到一個問題,我們在企業(yè)微信中的 H5 項目中需要用到table表格(支持懶加載 上劃加載數(shù)據(jù)),但是他們在鎖頭、鎖列的情況下,依舊會出現(xiàn)邊界橡皮筋效果,這篇文章主要介紹了vue項目中解決 IOS + H5 滑動邊界橡皮筋彈性效果,需要的朋友可以參考下
    2023-02-02
  • element-ui vue input輸入框自動獲取焦點聚焦方式

    element-ui vue input輸入框自動獲取焦點聚焦方式

    這篇文章主要介紹了element-ui vue input輸入框自動獲取焦點聚焦方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 在vue-cli腳手架中配置一個vue-router前端路由

    在vue-cli腳手架中配置一個vue-router前端路由

    這篇文章主要給大家介紹了在vue-cli腳手架中配置一個vue-router前端路由的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • 淺析vue中的組件傳值

    淺析vue中的組件傳值

    這篇文章主要介紹了淺析vue中的組件傳值,文章基于vue的相關(guān)資料展開對主題的詳細(xì)介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-04-04
  • vue.js 實現(xiàn)點擊div標(biāo)簽時改變樣式

    vue.js 實現(xiàn)點擊div標(biāo)簽時改變樣式

    這篇文章主要介紹了vue.js 實現(xiàn)點擊div標(biāo)簽時改變樣式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue項目中如何配置env環(huán)境的實現(xiàn)

    vue項目中如何配置env環(huán)境的實現(xiàn)

    本文主要介紹了vue項目中如何配置env環(huán)境的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Vue路由的模塊自動化與統(tǒng)一加載實現(xiàn)

    Vue路由的模塊自動化與統(tǒng)一加載實現(xiàn)

    這篇文章主要介紹了Vue路由的模塊自動化與統(tǒng)一加載實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • vue-element-admin開發(fā)教程(v4.0.0之后)

    vue-element-admin開發(fā)教程(v4.0.0之后)

    由于vue-element-admin的架構(gòu)再4.0.0版本后做了重構(gòu),整體結(jié)構(gòu)上和之前的還是很相似的,但是也有些變化,本文就介紹vue-element-admin開發(fā)教程(v4.0.0之后),感興趣的可以了解一下
    2022-04-04

最新評論

嘉义市| 辉南县| 昆明市| 大姚县| 迁安市| 河西区| 定州市| 恭城| 东光县| 克拉玛依市| 若羌县| 黔南| 平乐县| 偃师市| 关岭| 台山市| 衢州市| 延川县| 奈曼旗| 通道| 蒲城县| 冷水江市| 东莞市| 文安县| 海丰县| 怀安县| 光山县| 富宁县| 鄂伦春自治旗| 共和县| 夏津县| 四子王旗| 玛曲县| 闽清县| 旬邑县| 南涧| 龙江县| 东港市| 萝北县| 宣城市| 巴彦淖尔市|