博主信息
博文 56
粉丝 3
评论 1
访问量 60880
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
vue.js tab 组件
沈斌的博客
原创
1078人浏览过

index.html

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.4/css/bulma.min.css">
    <title>Tabs</title>
</head>
<body>
    <div id="app">
       <tabs>
           <tab name="About us" :selected="true">
               <h1>here is the content for about us</h1>
           </tab>

           <tab name="About culture">
                <h1>here is the content for about culture</h1>
            </tab>

            <tab name="About vision">
                <h1>here is the content for about vision</h1>
            </tab>
       </tabs>
    </div>

    <script src="https://unpkg.com/vue@2.6.10/dist/vue.js"></script>
    <script src="main.js"></script>
    
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

main.js

实例

Vue.component('tabs',{
    template:`
    <div>
        <div class="tabs">
            <ul>
                <li v-for="tab in tabs" :class="{'is-active': tab.isActive}">
                    <a href="#" @click="selectTab(tab)">{{ tab.name }}</a>
                </li>
            </ul>
        </div>

        <div class="tabs-details">
            <slot></slot>
        </div>
    </div>
    `,

    data(){
        return{
            tabs:[]
        }
    },
    created(){
        // console.log(this.$children);
        this.tabs = this.$children;
    },

    methods:{
        selectTab(selectedTab){
            this.tabs.forEach(tab=>{
                tab.isActive = (tab.name == selectedTab.name);
            });
        }
    }
});

Vue.component('tab',{
    template:`
        <div v-show="isActive"><slot></slot></div>
    `,

    props:{
        name:{required:true},
        selected:{default:false}
    },

    data(){
        return{
            isActive:false
        }
        
    },

    mounted(){
        this.isActive = this.selected;
    }
    
});
new Vue({
    el:'#app',

});

运行实例 »

点击 "运行实例" 按钮查看在线实例


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学