使用vue.js写一个tab选项卡效果

通常我们写tab选项卡的时候,一般都是用jq等去操作dom,给同级元素移除active类,然后,给被点击元素添加active类,但是在vue.js中,我们能不去操作dom我们就尽量不操作dom,那么该如何实现呢?

如果使用过vue-router,那么你会发现,vue-router在使用的时候其实就相当于一个tab选项卡,在点击之后,被点击的router-link元素会认被添加一个router-link-active的类,我们只需要设置这个类的样式即可.(当然,router-link-active)是vue-router认的类名,你可以自己配置更改名称.这样我们可以直接使用vue的路由功能当tab选项卡使用了.那么如果不想用路由功能呢?

那么请看下面的方法:

html部分

rush:xhtml;">
  • js部分

    rush:js;"> Vue.component('child1',{ template: "

    this is child1

    " }) Vue.component('child2',{ template: "

    this is child2

    " }) new Vue({ el: "#app",data: { active: 0,currentView: 'child1',tabs: [ { type: 'tab1',view: 'child1' },{ type: 'tab2',view: 'child2' } ] },methods: { toggle(i,v){ this.active = i this.currentView = v } } })

    然后我们只需要设置一个.active的样式就可以了,比如设置一个最简单的

    css

    rush:css;"> .active{ color:red }

    简易的vue.js tab 选项卡

    原理很简单,我们给tab选项绑定了toggle方法,点击时让active等于其index,从而给其添加一个active类,而显示内容也是同样的原理.比起传统操作dom方法,这个整体看上去更简洁,不过麻烦在每个tab选项卡都是一个组件.

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

    相关文章

    可以通过min-width属性来设置el-table-column的最小宽度。以...
    yarn dev,当文件变动后,会自动重启。 yanr start不会自动重...
    ref 用于创建一个对值的响应式引用。这个值可以是原始值(如...
    通过修改 getWK005 函数来实现这一点。这里的 query 参数就是...
    <el-form-item label="入库类型" ...
    API 变动 样式类名变化: 一些组件的样式类名有所变动,可能需...