vue中实现点击按钮(多个)添加样式并展示对应内容(模块)

vue中实现点击按钮(多个)添加样式并展示对应内容(模块)
类似tab栏切换
展示对应模块这里实现两种
一种是展示不同模块
第二种是根据值展示相同模块

<template>
  <div class="all">
    <div class="role-content">
      <div
        class="role-btn "
        @click="roleChecked0"
        :class="role0 == true ? 'active' : ''"
      >
        测试1
      </div>
      <div
        class="role-btn "
        @click="roleChecked1"
        :class="role1 == true ? 'active' : ''"
      >
        测试2
      </div>
      <div
        class="role-btn "
        @click="roleChecked2"
        :class="role2 == true ? 'active' : ''"
      >
        测试3
      </div>
      <!-- 一种是展示不同模块 -->
      <div v-if="status === '测试1'">测试一配套显示</div>
      <div v-if="status === '测试2'">测试二配套显示</div>
      <div v-if="status === '测试3'">测试三配套显示</div>
      <!-- 第二种是根据值展示相同模块 -->
      <div v-if="demo.includes(this.status)">
        当点击测试的三个按钮,只有status是'测试2''测试3'才会展示,点击测试一按钮无效
      </div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      role0: true,
      role1: false,
      role2: false,
      status: '测试1',
      demo: ['测试2', '测试3']
    }
  },
  methods: {
    roleChecked0() {
      this.role0 = true
      this.role1 = false
      this.role2 = false
      this.status = '测试1'
    },
    roleChecked1() {
      this.role0 = false
      this.role1 = true
      this.role2 = false
      this.status = '测试2'
    },
    roleChecked2() {
      this.role0 = false
      this.role1 = false
      this.role2 = true
      this.status = '测试3'
    }
  }
}
</script>

<style lang="scss" scoped>
.all {
  // 点击添加类的样式
  .active {
    color: #000;
    border: 1px solid #f00;
  }
  //主体部分的样式
  .role-content {
    .role-btn {
      font-size: 14px;
      width: 60px;
      height: 80px;
      line-height: 80px;
      text-align: center;
      margin-right: 15px;
      display: inline-block;
      background-color: #f6f6f6;
    }
  }
}
</style>


注:在这里初始值一定要设置正确,不然会出现刚进入页面添加类的按钮和下面展示的模块不对应
关于点击添加类的样式在style中的位置,在all外面和里面都可以实现


版权声明:本文为weixin_47686269原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>