• Vuex 的项目实例10 底部按钮高亮切换


    1、把底部按钮的默认 type 加上

    <!--操作按钮-->
    <a-button-group>
              <a-button type="primary" >全部</a-button>
              <a-button type="default" >未完成</a-button>
              <a-button type="default" >已完成</a-button>
    </a-button-group>

    2、给三个按钮都添加点击事件:

    <!--操作按钮-->
    <a-button-group>
              <a-button type="primary" @click="changList('all')">全部</a-button>
              <a-button type="default" @click="changList('undone')">未完成</a-button>
              <a-button type="default" @click="changList('done')">已完成</a-button>
    </a-button-group>
    
    <script>
    import { mapState, mapGetters } from 'vuex'
    export default {
      methods: {
        changList(e) {
          console.log(e)
        }
      }
    }
    </script>

    这时点击全部按钮,控制台打印“all”;点击未完成按钮,控制台打印“undone”;点击已经完成按钮,控制台打印“done”。

    3、在 store/index.js 文件的 state 中定义 viewKey:

    state: {
        viewKey: 'all' // 默认展示全部
    }

    4、把点击某个按钮的值赋值到 viewKey:

    // 修改页面上展示的列表数据
        changList(e) {
          console.log(e)
          this.$store.commit('changeViewKey', e)
        }

    5、打开 store/index.js 中添加 changeViewKey:

    mutations: {
        // 修改视图的关键字
        changeViewKey(state, key) {
          state.viewKey = key
        }
      }

    6、把全局的 viewKey 值映射为组件的计算属性:

    // 计算属性
      computed: {
        ...mapState(['list', 'inputValue', 'viewKey']),
      },

    7、根据 viewKey 的值,按需为底部按钮设置 type 值:

    <!--操作按钮-->
    <a-button-group>
       <a-button :type="viewKey === 'all' ?'primary' : 'default'" @click="changList('all')">全部</a-button>
       <a-button :type="viewKey === 'undone' ?'primary' : 'default'" @click="changList('undone')">未完成</a-button>
       <a-button :type="viewKey === 'done' ?'primary' : 'default'" @click="changList('done')">已完成</a-button>
    </a-button-group>

    ok,此时就实现了点击按钮实现高亮的效果。

  • 相关阅读:
    Java内存区域
    高并发
    集合框架
    面向对象基础概念
    java synchronized详解
    java使用DOM操作XML
    二、认识Xcode(第一个工程:Hello world)
    菜鸟手下的iOS开发笔记(swift)
    一、iOS开发环境搭建
    一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——实现篇:(十)使用JRTPLIB传输RTP数据
  • 原文地址:https://www.cnblogs.com/joe235/p/12744697.html
Copyright © 2020-2023  润新知