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

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

评论

  • 匿名