首页 > 专栏 > 前端 > 文章详情
用 Vue 实现一个 currentTab 组件切换 发布于:2021-04-12 14:27:37   来源:Vue   查看:35  讨论:0
效果如图:bhm易塔云建站-模板下载,web开发资源,技术博客
bhm易塔云建站-模板下载,web开发资源,技术博客
bhm易塔云建站-模板下载,web开发资源,技术博客
代码如下:

<style>bhm易塔云建站-模板下载,web开发资源,技术博客
  .tab-button {bhm易塔云建站-模板下载,web开发资源,技术博客
    padding: 6px 10px;bhm易塔云建站-模板下载,web开发资源,技术博客
    border-top-left-radius: 3px;bhm易塔云建站-模板下载,web开发资源,技术博客
    border-top-right-radius: 3px;bhm易塔云建站-模板下载,web开发资源,技术博客
    border: 1px solid #ccc;bhm易塔云建站-模板下载,web开发资源,技术博客
    cursor: pointer;bhm易塔云建站-模板下载,web开发资源,技术博客
    background: #f0f0f0;bhm易塔云建站-模板下载,web开发资源,技术博客
    margin-bottom: -1px;bhm易塔云建站-模板下载,web开发资源,技术博客
    margin-right: -1px;bhm易塔云建站-模板下载,web开发资源,技术博客
  }bhm易塔云建站-模板下载,web开发资源,技术博客
  .tab-button:hover {bhm易塔云建站-模板下载,web开发资源,技术博客
    background: #e0e0e0;bhm易塔云建站-模板下载,web开发资源,技术博客
  }bhm易塔云建站-模板下载,web开发资源,技术博客
  .tab-button.active {bhm易塔云建站-模板下载,web开发资源,技术博客
    background: #e0e0e0;bhm易塔云建站-模板下载,web开发资源,技术博客
  }bhm易塔云建站-模板下载,web开发资源,技术博客
  .tab {bhm易塔云建站-模板下载,web开发资源,技术博客
    border: 1px solid #ccc;bhm易塔云建站-模板下载,web开发资源,技术博客
    padding: 10px;bhm易塔云建站-模板下载,web开发资源,技术博客
  }bhm易塔云建站-模板下载,web开发资源,技术博客
</style>bhm易塔云建站-模板下载,web开发资源,技术博客
<div id="dynamic-component-demo" class="demo">bhm易塔云建站-模板下载,web开发资源,技术博客
    <button bhm易塔云建站-模板下载,web开发资源,技术博客
        v-for="tab in tabs"bhm易塔云建站-模板下载,web开发资源,技术博客
        v-bind:key="tab"bhm易塔云建站-模板下载,web开发资源,技术博客
        v-bind:class="['tab-button', {active: currentTab === tab}]"bhm易塔云建站-模板下载,web开发资源,技术博客
        v-on:click="currentTab = tab">bhm易塔云建站-模板下载,web开发资源,技术博客
        {{tab}}bhm易塔云建站-模板下载,web开发资源,技术博客
    </button>bhm易塔云建站-模板下载,web开发资源,技术博客
    <component v-bind:is="currentTabComponent" class="tab"></component>bhm易塔云建站-模板下载,web开发资源,技术博客
</div>bhm易塔云建站-模板下载,web开发资源,技术博客
<script type="text/javascript">bhm易塔云建站-模板下载,web开发资源,技术博客
    Vue.component("tab-home", {bhm易塔云建站-模板下载,web开发资源,技术博客
        template: "<div>Home component</div>"bhm易塔云建站-模板下载,web开发资源,技术博客
    });bhm易塔云建站-模板下载,web开发资源,技术博客
    Vue.component("tab-archive", {bhm易塔云建站-模板下载,web开发资源,技术博客
        template: "<div>Archive component</div>"bhm易塔云建站-模板下载,web开发资源,技术博客
    });bhm易塔云建站-模板下载,web开发资源,技术博客
    Vue.component("tab-posts", {bhm易塔云建站-模板下载,web开发资源,技术博客
        template: "<div>Posts component</div>"bhm易塔云建站-模板下载,web开发资源,技术博客
    });bhm易塔云建站-模板下载,web开发资源,技术博客
    new Vue({bhm易塔云建站-模板下载,web开发资源,技术博客
        el: "#dynamic-component-demo",bhm易塔云建站-模板下载,web开发资源,技术博客
        data: {bhm易塔云建站-模板下载,web开发资源,技术博客
            currentTab: "Home",bhm易塔云建站-模板下载,web开发资源,技术博客
            tabs: ["Home", "Archive", "Posts"]bhm易塔云建站-模板下载,web开发资源,技术博客
        },bhm易塔云建站-模板下载,web开发资源,技术博客
        computed: {bhm易塔云建站-模板下载,web开发资源,技术博客
            currentTabComponent: function() {bhm易塔云建站-模板下载,web开发资源,技术博客
                console.log(this)bhm易塔云建站-模板下载,web开发资源,技术博客
                return "tab-" + this.currentTab.toLowerCase()bhm易塔云建站-模板下载,web开发资源,技术博客
            },bhm易塔云建站-模板下载,web开发资源,技术博客
            bhm易塔云建站-模板下载,web开发资源,技术博客
        }bhm易塔云建站-模板下载,web开发资源,技术博客
    })bhm易塔云建站-模板下载,web开发资源,技术博客
</script>bhm易塔云建站-模板下载,web开发资源,技术博客

评论

  • 匿名