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

vue?layout模板頁的使用實例詳解

 更新時間:2023年08月28日 14:40:49   作者:張占嶺  
Vue 項目中使用布局組件來創(chuàng)建頁面布局的方式是完全可行的,而且在很多項目中都被廣泛采用,包括像 ruoyi 這樣的框架,這篇文章主要介紹了vue?layout模板頁的使用,需要的朋友可以參考下

模板頁的重要性

Vue 項目中使用布局組件來創(chuàng)建頁面布局的方式是完全可行的,而且在很多項目中都被廣泛采用,包括像 ruoyi 這樣的框架。這種模式有助于實現(xiàn)統(tǒng)一的頁面布局結(jié)構(gòu),減少重復代碼,并提高代碼的可維護性。

讓我們具體分析一下你提到的 ruoyi 框架的做法:

  • Layout 組件: layout/index.vue 是一個布局組件,定義了整個頁面的結(jié)構(gòu),包括頭部、側(cè)邊欄、底部等。在這個組件中,通過使用插槽來容納具體頁面的內(nèi)容,就像我在之前的回答中展示的那樣。
  • Router 配置: 在 router/index.js 中,為每個頁面配置了 component: Layout ,這意味著每個路由都會使用 Layout 組件作為布局,然后根據(jù)具體的路由再將對應的頁面組件插入到布局中的插槽中。

這種設(shè)計模式的好處包括:

  • 代碼復用: 布局邏輯只需要編寫一次,然后在各個頁面中重復使用。
  • 維護性: 如果需要調(diào)整整體布局,只需要修改一處即可影響所有頁面。
  • 擴展性: 可以輕松添加全局功能,例如導航、側(cè)邊欄等,而不必在每個頁面都添加相同的代碼。
  • 靈活性: 如果某個頁面需要不同的布局,也可以在路由配置中指定其他組件作為布局。

總的來說,這種模式是一種很好的實踐,可以提高開發(fā)效率和代碼質(zhì)量。當然,具體實現(xiàn)還需要根據(jù)項目需求進行調(diào)整和擴展。

具體實現(xiàn)項目結(jié)構(gòu)和加載順序

定義App.vue入口內(nèi)容

<template>
  <div id="app">
    <h1>app.vue入口內(nèi)容</h1>
    <router-view/>
  </div>
</template>
<script>
export default {
  name: "App"
};
</script>

定義layout/index.vue的模板內(nèi)容,你可以在里面定義其它子組件,不要忘記添加router-view,以便加載真實頁面的內(nèi)容

<template>
  <div id="app">
    <h1>模板頁加載</h1>
    <router-view/>
  </div>
</template>
<script>
export default {
  name: 'Layout',
  components: {},
  methods: {}
}
</script>

定義router.js,配置頁面的路由,定義頁面的模板頁

import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
/* Layout */
import Layout from '@/layout'
/**
 * Note: 路由配置項
 *
 * hidden: true                     // 當設(shè)置 true 的時候該路由不會再側(cè)邊欄出現(xiàn) 如401,login等頁面,或者如一些編輯頁面/edit/1
 * alwaysShow: true                 // 當你一個路由下面的 children 聲明的路由大于1個時,自動會變成嵌套的模式--如組件頁面
 *                                  // 只有一個時,會將那個子路由當做根路由顯示在側(cè)邊欄--如引導頁面
 *                                  // 若你想不管路由下面的 children 聲明的個數(shù)都顯示你的根路由
 *                                  // 你可以設(shè)置 alwaysShow: true,這樣它就會忽略之前定義的規(guī)則,一直顯示根路由
 * redirect: noRedirect             // 當設(shè)置 noRedirect 的時候該路由在面包屑導航中不可被點擊
 * name:'router-name'               // 設(shè)定路由的名字,一定要填寫不然使用<keep-alive>時會出現(xiàn)各種問題
 * query: '{"id": 1, "name": "ry"}' // 訪問路由的默認傳遞參數(shù)
 * roles: ['admin', 'common']       // 訪問路由的角色權(quán)限
 * permissions: ['a:a:a', 'b:b:b']  // 訪問路由的菜單權(quán)限
 * meta : {
    noCache: true                   // 如果設(shè)置為true,則不會被 <keep-alive> 緩存(默認 false)
    title: 'title'                  // 設(shè)置該路由在側(cè)邊欄和面包屑中展示的名字
    icon: 'svg-name'                // 設(shè)置該路由的圖標,對應路徑src/assets/icons/svg
    breadcrumb: false               // 如果設(shè)置為false,則不會在breadcrumb面包屑中顯示
    activeMenu: '/system/user'      // 當路由設(shè)置了該屬性,則會高亮相對應的側(cè)邊欄。
  }
 */
// 公共路由
export const constantRoutes = [
  {
    path: '/404',
    component: () => import('@/views/error/404'),
    hidden: true
  },
  {
    path: '/401',
    component: () => import('@/views/error/401'),
    hidden: true
  },
  {
    path: '/test',
    component: Layout,
    hidden: true,
    children: [
      {
        path: 'index',
        component: () => import('@/views/test/index'),
        name: 'test',
        meta: { title: 'test首頁', icon: 'dashboard', affix: true }
      },
      {
        path: 'test-obj',
        component: () => import('@/views/test/test-obj'),
        name: 'test-obj',
        meta: { title: 'test測試對象', icon: 'dashboard', affix: true }
      }
    ]
  }
]
// 防止連續(xù)點擊多次路由報錯
let routerPush = Router.prototype.push;
let routerReplace = Router.prototype.replace;
// push
Router.prototype.push = function push(location) {
  return routerPush.call(this, location).catch(err => err)
}
// replace
Router.prototype.replace = function push(location) {
  return routerReplace.call(this, location).catch(err => err)
}
export default new Router({
  mode: 'history', // 去掉url中的#
  scrollBehavior: () => ({ y: 0 }),
  routes: constantRoutes
})

運行/test/test-obj的效果,它會繼承app.vue和layout/index.vue的內(nèi)容

到此這篇關(guān)于vue layout模板頁的使用的文章就介紹到這了,更多相關(guān)vue layout模板頁內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue在取對象長度length時候出現(xiàn)undefined的解決

    vue在取對象長度length時候出現(xiàn)undefined的解決

    這篇文章主要介紹了vue在取對象長度length時候出現(xiàn)undefined的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Vue中使用v-model雙向數(shù)據(jù)綁定select、checked等多種表單元素的方法

    Vue中使用v-model雙向數(shù)據(jù)綁定select、checked等多種表單元素的方法

    ?v-model?指令可以用在表單?input、textarea?及?select?元素上創(chuàng)建雙向數(shù)據(jù)綁定,它會根據(jù)控件類型自動選取正確的方法來更新元素,本文給大家介紹Vue中如何使用v-model雙向數(shù)據(jù)綁定select、checked等多種表單元素,感興趣的朋友一起看看吧
    2023-10-10
  • Vue Spa切換頁面時更改標題的實例代碼

    Vue Spa切換頁面時更改標題的實例代碼

    本篇文章主要介紹了Vue Spa切換頁面時更改標題的實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Vue--keep-alive使用實例詳解

    Vue--keep-alive使用實例詳解

    這篇文章主要介紹了Vue--keep-alive使用實例詳解,keep-alive標簽主要用于保留組件狀態(tài)或避免重新渲染,用示例代碼介紹Vue的keep-alive的用法,需要的朋友可以參考下
    2022-08-08
  • Vue 過渡實現(xiàn)輪播圖效果

    Vue 過渡實現(xiàn)輪播圖效果

    本篇文章主要介紹了Vue 過渡實現(xiàn)輪播圖效果,Vue 的過渡系統(tǒng)是內(nèi)置的,在元素從 DOM 中插入或移除時自動應用過渡效果。有需要的小伙伴可以參考下。
    2017-03-03
  • Vue 如何import服務器上的js配置文件

    Vue 如何import服務器上的js配置文件

    這篇文章主要介紹了Vue 如何import服務器上的js配置文件,幫助大家更好的理解和學習使用vue框架,感興趣的朋友可以了解下
    2021-04-04
  • vue中跨域以及sessionId不一致問題及解決

    vue中跨域以及sessionId不一致問題及解決

    這篇文章主要介紹了vue中跨域以及sessionId不一致問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • vue實現(xiàn)虛擬滾動的示例詳解

    vue實現(xiàn)虛擬滾動的示例詳解

    虛擬滾動或者移動是指禁止原生滾動,之后通過監(jiān)聽瀏覽器的相關(guān)事件實現(xiàn)模擬滾動,下面小編就來和大家詳細介紹一下vue實現(xiàn)虛擬滾動的示例代碼,需要的可以參考下
    2023-10-10
  • 讓Vue響應Map或Set的變化操作

    讓Vue響應Map或Set的變化操作

    這篇文章主要介紹了讓Vue響應Map或Set的變化操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 前端Vue3實現(xiàn)圖片標點兩種方式總結(jié)

    前端Vue3實現(xiàn)圖片標點兩種方式總結(jié)

    這篇文章主要介紹了如何使用Vue3和Ant?Design?Vue4.x實現(xiàn)圖像標點和質(zhì)量檢測功能,文章詳細描述了兩種方式,每種方式都包括前端顯示代碼、配置基本數(shù)據(jù)、繪制圓點和序號以及處理圖片點擊的步驟,需要的朋友可以參考下
    2024-11-11

最新評論

苏尼特右旗| 镇安县| 灵石县| 和林格尔县| 平罗县| 曲靖市| 方城县| 开封市| 曲阜市| 延吉市| 高清| 青龙| 松江区| 陈巴尔虎旗| 行唐县| 郸城县| 泗洪县| 濮阳县| 南郑县| 襄城县| 克山县| 上饶市| 长顺县| 平舆县| 四平市| 台安县| 莱阳市| 德化县| 灵寿县| 江陵县| 莲花县| 乐昌市| 嵊州市| 襄垣县| 威海市| 综艺| 和平区| 顺平县| 克什克腾旗| 安泽县| 新乡市|