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

Vue折疊面板組件的封裝

 更新時間:2022年04月07日 14:37:07   作者:陽光的男夾克  
這篇文章主要為大家詳細介紹了Vue折疊面板組件的封裝,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Vue折疊面板組件的封裝代碼,供大家參考,具體內(nèi)容如下

該組件使用了 Element 的一些 icon 圖標,以及 過渡動畫 el-collapse-transition,需安裝 element

具體使用方法,主要知識點 provide ,inject,this.$children 和 _uid (vue中無論遞歸組件,還是自定義組件,每個組件都有唯一的_uid)

<!-- 折疊組件 -->
<navigation-bar v-model="barName" accordion>
? <navigation-bar-item label="測試1" name="1" line>測試1</navigation-bar-item>
? <navigation-bar-item label="測試2" name="2" line>測試2</navigation-bar-item>
? <navigation-bar-item label="測試3" name="3">測試3</navigation-bar-item>
</navigation-bar>

navigation-bar 組件代碼如下

<template>
? <div>
? ? <slot></slot>
? </div>
</template>

<script>
export default {
? name: "navigationBar",
? provide () {
? ? return {
? ? ? Bar: this
? ? }
? },
? props: {
? ? value: {
? ? ? type: String,
? ? ? default: ''
? ? },
? ? accordion: {
? ? ? type: Boolean,
? ? ? default: false
? ? }
? },
? methods: {
? ? changeState (id) {
? ? ? this.$children.forEach(item => {
? ? ? ? if (item._uid !== id) {
? ? ? ? ? item.isShow = false
? ? ? ? } else {
? ? ? ? ? item.isShow = !item.isShow
? ? ? ? }
? ? ? })
? ? }
? },
}
</script>

<style scoped>

</style>

navigation-bar-item 組件代碼如下,el-image 的圖片地址使用的本地圖片,請更換自己的路徑

<template>
? <div :class="line && !isShow ? 'content' : ''">
? ? <div class="navigationBar" @click="foldClick">
? ? ? <div class="navigationBarLeft"></div>
? ? ? <div class="navigationBarRight">
? ? ? ? <span>{{label}}</span>
? ? ? ? <div class="navigationBarIcon">
? ? ? ? ? <el-image style="width: 18px; height: 18px" :src="require('../assets/img/doubt.png')" ></el-image>
? ? ? ? ? <i :class="isShow ? 'rotate' : 'rotate1'" ref="foldIcon" style="margin-left: 10px" class="el-icon-arrow-down"></i>
? ? ? ? </div>
? ? ? </div>
? ? </div>
? ? <el-collapse-transition>
? ? ? <div v-show="isShow">
? ? ? ? <slot></slot>
? ? ? </div>
? ? </el-collapse-transition>
? </div>
</template>

<script>
export default {
? name: "navigationBarItem",
? inject: ['Bar'],
? props:{
? ? label:{
? ? ? type: String,
? ? ? required: true
? ? },
? ? name:{
? ? ? type: String,
? ? ? default: ''
? ? },
? ? line: {
? ? ? type: Boolean,
? ? ? default: false
? ? }
? },
? data() {
? ? return {
? ? ? isShow: false
? ? }
? },
? mounted() {
? ? // 默認展開
? ? this.Bar.value === this.name ? this.isShow = true : ''
? },
? methods: {
? ? // 導航條折疊
? ? foldClick() {
? ? ? if (this.Bar.accordion) {
? ? ? ? this.Bar.changeState(this._uid)
? ? ? } else {
? ? ? ? this.isShow = !this.isShow;
? ? ? }
? ? }
? }
}
</script>

<style scoped>
? .navigationBar {
? ? display: flex;
? }
? .navigationBar:hover {
? ? cursor: pointer;
? }
? .navigationBarLeft {
? ? width: 6px;
? ? height: 25px;
? ? background-color: #3179F4;
? }
? .navigationBarRight {
? ? flex: 1;
? ? display: flex;
? ? height: 25px;
? ? background-color: #F2F2F2;
? ? justify-content: space-between;
? ? padding: 0 10px;
? ? align-items: center;
? ? font-size: 14px;
? }
? .navigationBarIcon {
? ? display: flex;
? ? align-items: center;
? }
? .rotate {
? ? transform: rotate(180deg);
? ? transition: transform .3s;
? }
? .rotate1 {
? ? transform: rotate(0deg);
? ? transition: transform .3s;
? }

? .content {
? ? border-bottom: 1px solid #DCDFE6;
? }
</style>

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

相關(guān)文章

  • 使用vue-cli腳手架工具搭建vue-webpack項目

    使用vue-cli腳手架工具搭建vue-webpack項目

    這篇文章主要介紹了使用vue-cli腳手架工具搭建vue-webpack項目,通過幾個默認的步驟幫助你快速的構(gòu)建Vue.js項目。非常具有實用價值,需要的朋友可以參考下
    2019-01-01
  • Vue使用html2canvas和jspdf實現(xiàn)PDF文件導出

    Vue使用html2canvas和jspdf實現(xiàn)PDF文件導出

    這篇文章主要為大家詳細介紹了Vue如何使用html2canvas和jspdf實現(xiàn)PDF文件導出功能并設(shè)置頁面大小及方向,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-01-01
  • vue前端重構(gòu)computed及watch組件通信等實用技巧整理

    vue前端重構(gòu)computed及watch組件通信等實用技巧整理

    這篇文章主要為大家介紹了vue前端重構(gòu)computed及watch組件通信等實用技巧整理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Vue 創(chuàng)建組件的兩種方法小結(jié)(必看)

    Vue 創(chuàng)建組件的兩種方法小結(jié)(必看)

    Vue 創(chuàng)建組件的方法有哪些呢?下面小編就為大家分享一篇Vue 創(chuàng)建組件的兩種方法小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • 解決vue-cli3 使用子目錄部署問題

    解決vue-cli3 使用子目錄部署問題

    這篇文章主要介紹了解決vue-cli3 使用子目錄部署問題,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07
  • Vue?Router如何刷新當前頁面

    Vue?Router如何刷新當前頁面

    Vue項目,?在實際工作中,?有些時候需要在?加載完某些數(shù)據(jù)之后對當前頁面進行刷新,?這篇文章主要為大家介紹了三種常用方法,需要的可以參考一下
    2023-10-10
  • vue如何對一個數(shù)據(jù)過濾出想要的item

    vue如何對一個數(shù)據(jù)過濾出想要的item

    這篇文章主要介紹了vue如何對一個數(shù)據(jù)過濾出想要的item問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue3?Suspense實現(xiàn)優(yōu)雅處理異步數(shù)據(jù)加載

    Vue3?Suspense實現(xiàn)優(yōu)雅處理異步數(shù)據(jù)加載

    Suspense?是?Vue?3?中用于處理異步數(shù)據(jù)加載的特性,它使得在加載異步數(shù)據(jù)時可以提供更好的用戶體驗,下面小編就來和大家詳細講講Suspense如何優(yōu)雅處理異步數(shù)據(jù)加載吧
    2023-10-10
  • vue中使用webuploader做斷點續(xù)傳實現(xiàn)文件上傳功能

    vue中使用webuploader做斷點續(xù)傳實現(xiàn)文件上傳功能

    之前做的一個項目中,由于經(jīng)常上傳幾百兆的壓縮包,導致經(jīng)常上傳失敗,所以就找了webuploader插件做了斷點續(xù)傳,斷點續(xù)傳除了需要前端分片,也需要后臺去支持,所以做的時候做好對接協(xié)調(diào),所以本文就給大家詳細的介紹一下vue中如何使用webuploader做斷點續(xù)傳
    2023-07-07
  • vue項目webpack中Npm傳遞參數(shù)配置不同域名接口

    vue項目webpack中Npm傳遞參數(shù)配置不同域名接口

    這篇文章主要介紹了vue項目webpack中Npm傳遞參數(shù)配置不同域名接口,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06

最新評論

玉龙| 株洲市| 榆中县| 甘德县| 璧山县| 依兰县| 偏关县| 广安市| 四子王旗| 怀宁县| 丰台区| 大埔县| 利辛县| 汉阴县| 青冈县| 成武县| 方山县| 砀山县| 宝兴县| 克什克腾旗| 三河市| 芦山县| 江孜县| 海宁市| 东明县| 桃源县| 巴里| 沾益县| 屯留县| 汝南县| 吐鲁番市| 崇左市| 勐海县| 平武县| 云安县| 措勤县| 湘西| 江阴市| 晋城| 阿克| 尼勒克县|