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

Vue折疊面板組件的封裝

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

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

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

具體使用方法,主要知識點(diǎn) 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() {
? ? // 默認(rèn)展開
? ? this.Bar.value === this.name ? this.isShow = true : ''
? },
? methods: {
? ? // 導(dǎo)航條折疊
? ? 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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

    Vue使用html2canvas和jspdf實(shí)現(xiàn)PDF文件導(dǎo)出

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

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

    這篇文章主要為大家介紹了vue前端重構(gòu)computed及watch組件通信等實(shí)用技巧整理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    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如何刷新當(dāng)前頁面

    Vue?Router如何刷新當(dāng)前頁面

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

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

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

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

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

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

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

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

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

最新評論

万荣县| 平阳县| 中牟县| 潢川县| 建阳市| 砀山县| 广德县| 苏尼特左旗| 福安市| 原平市| 武山县| 玉树县| 徐水县| 澄迈县| 通化市| 麻栗坡县| 绥阳县| 石首市| 米泉市| 浏阳市| 朝阳区| 南召县| 乌鲁木齐县| 康平县| 岳池县| 土默特右旗| 建德市| 湛江市| 华阴市| 迁安市| 盐城市| 枝江市| 安龙县| 湟中县| 烟台市| 苍山县| 阿拉尔市| 孝义市| 乌审旗| 浙江省| 靖宇县|