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

vue封裝tabs組件案例詳解

 更新時(shí)間:2022年03月22日 10:26:25   作者:木子石@  
這篇文章主要為大家詳細(xì)介紹了vue封裝tabs組件案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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

回顧封裝tabs組件
熟知運(yùn)用$children,$parent的案例
生成整個(gè)容器,通過$children拿取子組件

<template>
? <div class="ll-tabs">
? ? <div class="ll-tabs__header">
? ? ? <div
? ? ? ? class="ll-tabs__header__wrapper"
? ? ? ? v-if="tabsArray && tabsArray.length > 0"
? ? ? >
? ? ? ? <div
? ? ? ? ? v-for="tab in tabsArray"
? ? ? ? ? :key="tab.name"
? ? ? ? ? :class="`ll-tab__item ${activeName === tab.name ? 'is-active' : ''}`"
? ? ? ? ? @click="clickTab(tab)"
? ? ? ? >
? ? ? ? ? {{ tab.label }}
? ? ? ? </div>
? ? ? </div>
? ? </div>
? ? <div class="ll-tabs__body"><slot></slot></div>
? </div>
</template>
<script>
export default {
? name: "ll-tabs",
? props: ["value"],
? data() {
? ? return {
? ? ? tabsArray: [],
? ? ? activeName: this.value,
? ? };
? },
? watch: {
? ? value(val) {
? ? ? this.setCurrentName(val);
? ? },
? },
? mounted() {
? ? this.tabsArray = this.$children;
? },
? methods: {
? ? clickTab(tab) {
? ? ? this.activeName = tab.name;
? ? ? this.updateTab();
? ? ? this.$emit("change", tab);
? ? },
? ? updateTab() {
? ? ? this.$children.map((ele) => {
? ? ? ? console.log(ele);
? ? ? ? if (ele.name === this.activeName) {
? ? ? ? ? ele.currentShow = true;
? ? ? ? ? ele.load = true;
? ? ? ? } else {
? ? ? ? ? ele.currentShow = false;
? ? ? ? }
? ? ? });
? ? },
? ? setCurrentName(val) {
? ? ? this.activeName = val;
? ? },
? },
};
</script>
<style lang="scss" scoped>
.ll-tabs {
? width: 100%;
? height: auto;
? .ll-tabs__header {
? ? width: 100%;
? ? .is-active.ll-tab__item {
? ? ? background-color: aquamarine;
? ? }
? ? .ll-tabs__header__wrapper:before {
? ? ? color: white;
? ? }
? ? .ll-tabs__header__wrapper {
? ? ? width: 100%;
? ? ? display: flex;
? ? ? align-content: center;
? ? ? justify-content: flex-start;
? ? ? align-items: center;
? ? ? height: 30px;
? ? ? padding: 1px 0;
? ? }
? ? .ll-tab__item {
? ? ? width: fit-content;
? ? ? height: 30px;
? ? ? padding: 0 15px;
? ? ? font-size: 14px;
? ? ? background-color: transparent;
? ? ? z-index: 49;
? ? ? cursor: pointer;
? ? ? line-height: 30px;
? ? ? border: 1px rgba(100, 100, 100, 0.1) solid;
? ? ? border-right: none;
? ? ? &:last-of-type {
? ? ? ? border-right: 1px rgba(100, 100, 100, 0.1) solid;
? ? ? }
? ? }
? }
}
.ll-tabs__body {
? padding: 10px 0;
? height: auto;
? background-color: transparent;
}
</style>

生成子組件,展示每個(gè)tab。

<template>
? <div
? ? v-if="!lazy || loaded || currentShow"
? ? v-show="currentShow"
? ? :class="`ll-tab-pane tab-${name}`"
? >
? ? <slot></slot>
? </div>
</template>
<script>
export default {
? name: "ll-tab-pane",
? props: {
? ? label: String,
? ? name: String,
? ? lazy: Boolean,
? },
? data() {
? ? return {
? ? ? currentShow: false,
? ? ? loaded: false,
? ? };
? },
? mounted() {
? ? this.$parent.updateTab();
? },
};
</script>

使用

?<llTabs v-model="activeName">
? ? <llTabsPane name="first" label="first">first</llTabsPane>
? ? <llTabsPane name="second" label="second">second</llTabsPane>
? ? <llTabsPane name="third" label="third">third</llTabsPane>
? </llTabs>
import { llTabs, llTabsPane } from "@/components/tabs";
export default {
? components: { llTabs, llTabsPane },
? }

展示

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

相關(guān)文章

  • Vue3搭建組件庫開發(fā)環(huán)境的示例詳解

    Vue3搭建組件庫開發(fā)環(huán)境的示例詳解

    這篇文章給大家分享Vue3搭建組件庫開發(fā)環(huán)境,給大家講解依次搭建組件庫、example、文檔、cli,本文內(nèi)容是搭建組件庫的開發(fā)環(huán)境的過程,感興趣的朋友跟隨小編一起看看吧
    2022-11-11
  • vue單頁應(yīng)用加百度統(tǒng)計(jì)代碼(親測有效)

    vue單頁應(yīng)用加百度統(tǒng)計(jì)代碼(親測有效)

    這篇文章主要介紹了vue單頁應(yīng)用加百度統(tǒng)計(jì)代碼的解決方法,需要的朋友參考下吧
    2018-01-01
  • vue單頁緩存存在的問題及解決方案(小結(jié))

    vue單頁緩存存在的問題及解決方案(小結(jié))

    這篇文章主要介紹了vue單頁緩存存在的問題及解決方案(小結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • 手把手教你創(chuàng)建vue3項(xiàng)目的最佳方式

    手把手教你創(chuàng)建vue3項(xiàng)目的最佳方式

    如今的Vue3已經(jīng)勢不可擋,當(dāng)然搭建一個(gè)全新的Vue3項(xiàng)目也有了全新的方式,下面這篇文章主要給大家介紹了關(guān)于如何手把手教你創(chuàng)建vue3項(xiàng)目的最佳方式,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • vue keep-alive實(shí)現(xiàn)多組件嵌套中個(gè)別組件存活不銷毀的操作

    vue keep-alive實(shí)現(xiàn)多組件嵌套中個(gè)別組件存活不銷毀的操作

    這篇文章主要介紹了vue keep-alive實(shí)現(xiàn)多組件嵌套中個(gè)別組件存活不銷毀的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 如何正確理解vue中的key詳解

    如何正確理解vue中的key詳解

    這篇文章主要給大家介紹了關(guān)于如何正確理解vue中key的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • vuex狀態(tài)管理淺談之mapState用法

    vuex狀態(tài)管理淺談之mapState用法

    當(dāng)一個(gè)組件需要獲取多個(gè)狀態(tài)的時(shí)候,將這些狀態(tài)都聲明為計(jì)算屬性會有些重復(fù)和冗余,為了解決這個(gè)問題我們可以使用mapState輔助函數(shù)幫助我們生成計(jì)算屬性,這篇文章主要給大家介紹了關(guān)于vuex狀態(tài)管理之mapState用法的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • Vue中如何判斷對象是否為空

    Vue中如何判斷對象是否為空

    這篇文章主要介紹了Vue中如何判斷對象是否為空,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Vue兩種組件類型:遞歸組件和動(dòng)態(tài)組件的用法

    Vue兩種組件類型:遞歸組件和動(dòng)態(tài)組件的用法

    這篇文章主要介紹了Vue兩種組件類型:遞歸組件和動(dòng)態(tài)組件的用法說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • vue瀏覽器返回監(jiān)聽的具體步驟

    vue瀏覽器返回監(jiān)聽的具體步驟

    這篇文章主要給大家介紹了關(guān)于vue瀏覽器返回監(jiān)聽的具體步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02

最新評論

昭平县| 大丰市| 辉南县| 香河县| 福清市| 临清市| 德阳市| 贵定县| 泽库县| 凌源市| 穆棱市| 彭水| 翁牛特旗| 左云县| 额敏县| 景东| 嫩江县| 丰台区| 康定县| 台前县| 冷水江市| 临颍县| 扎赉特旗| 环江| 元氏县| 富顺县| 五常市| 开江县| 梨树县| 乌拉特中旗| 吴旗县| 鸡东县| 长寿区| 乌审旗| 昭觉县| 滦平县| 古田县| 麟游县| 辉南县| 郧西县| 图木舒克市|