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

vue封裝tabs組件案例詳解

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

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

回顧封裝tabs組件
熟知運(yùn)用$children,$parent的案例
生成整個容器,通過$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>

生成子組件,展示每個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)計代碼(親測有效)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論

安丘市| 巴塘县| 金湖县| 海城市| 行唐县| 新宁县| 茂名市| 手游| 内乡县| 军事| 淅川县| 长顺县| 晋州市| 平湖市| 江津市| 宝兴县| 遵义市| 宜君县| 榆中县| 武宣县| 常宁市| 仪征市| 深泽县| 高雄市| 青浦区| 盐山县| 木里| 侯马市| 乡宁县| 南平市| 阿拉尔市| 东丽区| 策勒县| 尉犁县| 乌恰县| 姚安县| 尼勒克县| 日照市| 乌兰浩特市| 白山市| 东光县|