登录  /  注册
首页 > web前端 > js教程 > 正文
Vue2 tab切换选项卡的方法
php中世界最好的语言
发布: 2018-03-10 13:53:12
原创
2577人浏览过

这次给大家带来Vue2 tab切换选项卡的方法,使用Vue2 tab切换选项卡的注意事项有哪些,下面就是实战案例,一起来看一下。

最近在学习Vue,看是案例后随便做一个实践,一遍加深理解;这种简单又能实现效果的比较能够接受;

html:结构很简单:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title>components</title>
    <script src="vue.js"></script>
    <style type="text/css">
        span{
            background:#ccc;
            padding:2px 5px;
            line-height:30px;
            text-align:center;
            cursor:pointer;
        }
        span.active{
            color:#fff;
            background:green;
        }
    </style>
</head>
<body>
    <div id="app">
        <component :is="who"></component>
        <span   :class="{active:active[key]}"   v-for="(item,key) in tab" @click="change(key)">{{item.content}} :{{key}}</span>
    </div>
</body>
</html>
登录后复制

js代码:

<script type="text/javascript">
    var tem1 = {
        template: "<div>我是components_A组件</div>",
    };
    var tem2 = {
        template: "<div>我是components_B组件</div>",
    };
    var tem3 = {
        template: "<div>我是components_C组件</div>",
    };
    var vue1 = new Vue({
        el: "#app",
        data: {
            who: "com1",          //默认第一次显示;
            active: [true, false, false],//统一管理状态;
            tab: [{
                "content": "tab1",    //tab-span
                "func": "com1"           //仅仅用来存放组件;
            }, {
                "content": "tab2",
                "func": "com2"
            }, {
                "content": "tab3",
                "func": "com3"
            }]
        },
        updated: function() {
            // this.who=null;
        },
        methods: {
            change:function(x){
                
                for(var i=0;i<this.active.length;i++){
                    this.active[i]=false;
                    this.active[x]=true;
                    this.who=this.tab[x].func;
                }
                console.log(this.active);
                // console.log(x);
                this.$set(this.active, 3, 0);
            }
        },
        components: {
            "com1": tem1,
            "com2": tem2,
            "com3": tem3
        }
    })</script>
登录后复制

之前也是做了一个例子代码比较凌乱,这个用v-for做简化了;

要点之一: 不要忘记 v-for的遍历顺序 值-键;

要点之二: 关于全局API Vue.set();的使用; 应该在change方法中的循环之后用 this.$set调用;

     这里使用了一个小技巧就是关于active状态的值在改变后如何更新呢,

     在其中后面加入一项,这一项并没有什么意义,而仅仅是调用$set方法让Vue知道;

要点之三: 关于component组件 is:who 如何引用到呢;把它发到被v-for遍历的一个 func属性中;这样就方便了;

     事实上在data下再写一个变量来存放 com1 com2 com3 是不会生效的;

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

相关阅读:

如何解决IE11的css Hack

VUE如何使用anmate.css3

axios怎样基于Promise的HTTP请求客户端

以上就是Vue2 tab切换选项卡的方法的详细内容,更多请关注php中文网其它相关文章!

相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

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