当前位置: 首页 > article >正文

快速入门——状态管理VueX

Vuex介绍

状态管理

每一个Vuex应用的核心都是一个store,与普通的全局对象不同的是,基于Vue数据与视图绑定的特点,当store中的状态发生变化时,与之绑定的视图也会被重新渲染。

store中的状态不允许被直接修改,改变store中的状态的唯一途径就是显示地提交,这可以让我们方便地跟踪每一个状态的变化。

在大型复杂应用中,如果无法有效地跟踪到状态的变化,将会对理解和维护代码带来极大的困难。

Vuex中有5个重要的概念:State,Getter,Mutation,Action,Module

State用于维护所有应用层的状态,并确保应用只有唯一的数据源.Mutation提供修改State状态的方法

//创建一个新的store实例

const store = createStore({

        state (){

                return {

                        count: 0

                }

        },

        mutations:{

                increment(state){

                        state.count++

                }

        }

})

 在组件中,可以直接使用this.$store.state.count访问数据,也可先用mapState辅助函数将其映射下来。

//单独构建的版本中辅助函数为Vuex.mapState

import { mapState } from 'vuex'

export default{

        coputed: mapState({

                count:state => state.count.

                countAlias: 'count',

                countPlusLocalState(state){

                       return state.count+this.localCount 

                }

        })

}

Mutation同步操作

在组件中,可以直接使用store.commit来提交mutation

method:{
    increment(){
        this.$store.commit('increment')
        console.log(this.$store.state.count)
    }
}

 也可以先用mapMutation辅助函数将其映射下来

methods: {
    ...mapMutations([
        'increment',
        'incrementBy'
        
    ])
},

Getter维护由State派生的一些状态,这些状态随着State状态的变化而变化

Action

类似于Mutation,适合做异步操作

Action不能直接修改状态,只能通过提交mutation来修改

const store = createStore({
    state: {
        count: 0
    },
    mutations: {
        increment(state){
            state++
        }
    },
    actions: {
        increment(context){
            context.commit('increment')
        }
    }


})


http://www.kler.cn/a/562258.html

相关文章:

  • 数据安全_笔记系列07:数据泄露防护(DLP)(监控与阻断敏感数据外泄)深度解析
  • 【算法】滑动窗口(下)
  • 手撕FocalLoss
  • 【Android】类加载器热修复-随记
  • Python常见面试题的详解20
  • 无人机 IP防护等级 IP53
  • 4. designer建立关于目标检测的简单界面(python)
  • 5、使用 pgAdmin4 图形化创建和管理 PostgreSQL 数据库
  • 数据结构实战:高效的缓存系统(哈希表 + LRU算法)与分布式任务调度系统(树形结构 + 图形算法)
  • mysql将表导出为sql文件
  • 动态自定义标签属性页面(Tomcat 9)
  • 实体机器人在gazebo中的映射
  • 【Elasticsearch】script_fields 和 runtime_fields的区别
  • 第十九天 HarmonyOS的文件操作和本地存储
  • AR技术下的电商:虚拟试穿/试用/试戴成新风尚
  • SpringBoot集成DeepSeek实现AI对话详细教程
  • 【算法设计与分析】(一)介绍算法与复杂度分析
  • 前景光明的Goggles($GOGLZ)登陆SONIC
  • 【含文档+PPT+源码】基于微信小程序的农产品自主供销商城系统
  • 【无标题】网络安全公钥密码体制