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

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

评论

  • 匿名