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

vue面包屑組件的封裝方法

 更新時間:2021年09月18日 11:59:13   作者:愛美食的程序員  
這篇文章主要為大家詳細介紹了vue面包屑組件的封裝方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

vue中自己封裝面包屑組件,供大家參考,具體內(nèi)容如下

要實現(xiàn)效果

前言

很多電商類產(chǎn)品都需要實現(xiàn)面包屑導(dǎo)航,用來優(yōu)化用戶體驗

一、初級面包屑封裝組件

1.封裝基礎(chǔ)結(jié)構(gòu)組件 Bread.vue

<template>
  <div class='xtx-bread'>
    <div class="xtx-bread-item">
      <RouterLink to="/">首頁</RouterLink>
    </div>
    <i class="iconfont icon-angle-right"></i>
    <div class="xtx-bread-item">
      <RouterLink to="/category/10000">二級級導(dǎo)航</RouterLink>
    </div>
    <i class="iconfont icon-angle-right"></i>
    <div class="xtx-bread-item">
      <span>三級導(dǎo)航</span>
    </div>
  </div>
</template>

<style scoped lang='less'>
.xtx-bread{
  display: flex;
  padding: 25px 10px;
  &-item {
    a {
      color: #666;
      transition: all .4s;
      &:hover {
        color: @xtxColor;
      }
    }
  }
  i {
    font-size: 12px;
    margin-left: 5px;
    margin-right: 5px;
    line-height: 22px;
  }
}
</style>

2.定義 props 暴露 parentPath parentName 屬性,默認插槽,動態(tài)渲染組件

<div class='xtx-bread'>
     <div class="xtx-bread-item">
       <RouterLink to="/">首頁</RouterLink>
     </div>
     <i class="iconfont icon-angle-right"></i>
    <template v-if="parentName">
     <div class="xtx-bread-item"  v-if="parentName">
       <RouterLink  v-if="parentPath" to="/category/10000">{{parentName}}</RouterLink>
       <span v-else>{{parentName}}</span>
     </div>
    </template>
    <i v-if="parentName" class="iconfont icon-angle-right"></i>
    <div class="xtx-bread-item">
      <span> <slot/> </span>
    </div>
  </div>
//用props接收數(shù)據(jù)
props: {
    parentName: {
      type: String,
      default: ''
    },
    parentPath: {
      type: String,
      default: ''
    }
  }

3.注冊組件,使用驗證效果

import Bread from './Bread'
export default {
  install (app) {
    // Vue2中,參數(shù)是Vue構(gòu)造函數(shù)
    // Vue3中,參數(shù)是根組件的實例對象

    // 配置一個全局組件
    app.component(Bread.name, Bread)
  }
}

4.使用組件

<Bread parentPath="/category/1005000" parentName="服飾">飛織系列</Bread>
<Bread parentName="服飾">飛織系列</Bread>  //parentPath去掉后不能實現(xiàn)跳轉(zhuǎn)

二、高級封裝 無限極導(dǎo)航

參考element-ui的面包屑組件:

<el-breadcrumb separator="/">
  <el-breadcrumb-item :to="{ path: '/' }">首頁</el-breadcrumb-item>
  <el-breadcrumb-item><a href="/" rel="external nofollow" >活動管理</a></el-breadcrumb-item>
  <el-breadcrumb-item>活動列表</el-breadcrumb-item>
  <el-breadcrumb-item>活動詳情</el-breadcrumb-item>
</el-breadcrumb>

1.封裝基礎(chǔ)結(jié)構(gòu)組件 BrendItem.vue

<template>
  <div class="xtx-bread-item">
    <RouterLink v-if="to" :to="to"><slot /></RouterLink>
    <span v-else><slot /></span>
    <i class="iconfont icon-angle-right"></i>
  </div>
</template>
<script>
export default {
  name: 'XtxBreadItem',
  props: {
    to: {
      type: [String, Object] //to的值即可以是字符串,也可以是對象
    }
  }
}
</script>
//使用時
<bread-item to="/xxx/id"></bread-item>
<bread-item :to='{path:"/xxx/id"}'></bread-item>

2.封裝 Brend.vue

<template>
  <div class='xtx-bread'>
    <slot />
  </div>
</template>

<script>
export default {
  name: 'XtxBread'
}
</script>

<style scoped lang='less'>
.xtx-bread {
  display: flex;
  padding: 25px 10px;
  :deep(&-item) {
    a {
      color: #666;
      transition: all 0.4s;
      &:hover {
        color: @xtxColor;
      }
    }
  }
  :deep(i) {
    font-size: 12px;
    margin-left: 5px;
    margin-right: 5px;
    line-height: 22px;
  }
}
</style>

3.注冊

import BreadItem  from './BreadItem'
import Bread  from './Bread'
export default {
  install (app) {
    // Vue2中,參數(shù)是Vue構(gòu)造函數(shù)
    // Vue3中,參數(shù)是根組件的實例對象

    // 配置一個全局組件
    app.component(Bread.name,Bread)
    app.component(BreadItem.name, BreadItem)
  }
}

4.使用

// 面包屑
<Bread>
    <BreadItem to="/">首頁</XtxBreadItem>
    <BreadItem to="/category/1005000">服飾</XtxBreadItem>
    <BreadItem >飛織系列</XtxBreadItem>
</XtxBread>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Vue適時清理keepalive緩存方案

    詳解Vue適時清理keepalive緩存方案

    說到Vue緩存,我們肯定首先選擇官方提供的緩存方案keep-alive,本文主要介紹了詳解Vue適時清理keepalive緩存方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2022-07-07
  • vue使用cesium創(chuàng)建數(shù)據(jù)白模方式

    vue使用cesium創(chuàng)建數(shù)據(jù)白模方式

    這篇文章主要介紹了vue使用cesium創(chuàng)建數(shù)據(jù)白模方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue項目打包部署總結(jié)篇

    Vue項目打包部署總結(jié)篇

    這篇文章主要介紹了Vue項目打包部署總結(jié)篇,關(guān)于Vue項目發(fā)布的相關(guān)問題就先總結(jié)這么多,幾乎在每一步都踩過坑才有所體會,有問題歡迎各位同學(xué)一起探討,需要的朋友可以參考下
    2024-08-08
  • Vue中的計算屬性computed傳參方式

    Vue中的計算屬性computed傳參方式

    這篇文章主要介紹了Vue中的計算屬性computed傳參方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 基于vue 動態(tài)菜單 刷新空白問題的解決

    基于vue 動態(tài)菜單 刷新空白問題的解決

    這篇文章主要介紹了基于vue 動態(tài)菜單 刷新空白問題的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • vue 組件基礎(chǔ)知識總結(jié)

    vue 組件基礎(chǔ)知識總結(jié)

    這篇文章主要介紹了vue 組件基礎(chǔ)知識的相關(guān)資料,幫助大家更好的理解和使用vue的組件,感興趣的朋友可以了解下
    2021-01-01
  • vue3的setup語法糖簡單封裝ckediter的過程

    vue3的setup語法糖簡單封裝ckediter的過程

    Vue3官方提供了 script setup 語法糖,只需在script標簽中添加setup,組件只需引入不用注冊,屬性和方法也不用返回,今天通過本文給大家分享vue3的setup語法糖簡單封裝ckediter的過程,感興趣的朋友一起看看吧
    2023-10-10
  • 關(guān)于Vue?"__ob__:Observer"屬性的解決方案詳析

    關(guān)于Vue?"__ob__:Observer"屬性的解決方案詳析

    在操作數(shù)據(jù)的時候發(fā)現(xiàn),__ob__: Observer這個屬性出現(xiàn)之后,如果單獨拿數(shù)據(jù)的值,就會返回undefined,下面這篇文章主要給大家介紹了關(guān)于Vue?"__ob__:Observer"屬性的解決方案,需要的朋友可以參考下
    2022-11-11
  • vue.js動態(tài)修改background-image問題

    vue.js動態(tài)修改background-image問題

    這篇文章主要介紹了vue.js動態(tài)修改background-image問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 深入解析el-col-group強大且靈活的Element表格列組件

    深入解析el-col-group強大且靈活的Element表格列組件

    這篇文章主要為大家介紹了el-col-group強大且靈活的Element表格列組件深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04

最新評論

兰州市| 北海市| 广昌县| 济阳县| 洛隆县| 中卫市| 乌兰浩特市| 镇赉县| 南陵县| 钟祥市| 东方市| 恩施市| 威远县| 新龙县| 蒙自县| 屯昌县| 湖州市| 昌图县| 和林格尔县| 阿克苏市| 额敏县| 神木县| 宁南县| 巴东县| 晋州市| 县级市| 黑山县| 秦皇岛市| 陇川县| 宣恩县| 岑巩县| 焦作市| 五常市| 仙居县| 嘉黎县| 赤城县| 来宾市| 通河县| 济阳县| 梁山县| 榆中县|