博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vuex
阅读量:5290 次
发布时间:2019-06-14

本文共 1581 字,大约阅读时间需要 5 分钟。

背景

    vue应用程序开发时,我们经常遇到如何在组件之间传值,父子组件传值可以用prop属性和emit事件来互相传递,但是兄弟组件呢?使用vuex是一种非常简单的方案。

vuex简介

vuex是vue的状态管理模式,用于管理状态,所谓状态可理解为data,需要共享传递的data,这些data在vuex内统一管理维护。

vuex对象

vuex内有五大对象,如下:

  state:state内定义data,即变量,this.$store.data1。

  mutations:用于修改状态,同步的,定义修改状态的方法,可以理解为java类的set方法,不允许直接操作state内的变量,this.$store.commit(“方法名”,param)。

  actions:与mutations类似,不同的是它异步操作,mutations是同步操作,actions内可以提交mutations,不可以直接修改状态。this.$store.dispatch('actions内的方法',参数)。actions内方法定义有两种,如下:

const actions = {    actionsAddCount(context, n = 0) {        console.log(context)        return context.commit('mutationsAdd', n)    },    actionsReduceCount({ commit }, n = 0) {        return commit('mutationsReduce', n)    }}

  getters:计算属性,当state内属性变化时重新计算返回属性结果。官方文档解释为store的计算属性。也可以理解为所有组件的计算(computed)属性。

  modules:这个适用于开发大型项目,需要很多不同类的状态分模块时使用的。

const moduleA = {  state: { ... },  mutations: { ... },  actions: { ... },  getters: { ... }}const moduleB = {  state: { ... },  mutations: { ... },  actions: { ... }}

如何使用

//安装vuex依赖,npm install vuex --save//新建一个vuex的文件,建立一个vuex.js文件。import Vue from 'vue'import Vuex from 'vuex'Vue.use(VueX)const vuex = new VueX.store({   state:{     A:0        }   mutations:{     SET_A(state,n ){      state.A = n      state.A += n    }        }   actions:{     actionA1({commit},n){       return commit('SET_A',n)    }    actionA2(context,n){       return commit('SET_A',n)    }   }    getters : {      getterA(state, n ) {         return (state.A += n)      }    } }) export default vuex
//在vue实例内使用即可 new Vue({
  vuex })

 

转载于:https://www.cnblogs.com/hzozj/p/11167703.html

你可能感兴趣的文章
LOJ.121.[离线可过]动态图连通性(线段树分治 按秩合并)
查看>>
201521123072 结对编程
查看>>
最长上升子序列
查看>>
maven 依赖、聚合和继承 (转)
查看>>
selinux介绍/状态查看/开启/关闭
查看>>
DockerAPI版本不匹配的问题
查看>>
Leetcode: Ugly Number II
查看>>
项目立项管理
查看>>
(没时间维护,已下架)博客园第三方客户端-i博客园正式发布App Store
查看>>
map使用实例
查看>>
关于ShapeDrawable应用的一些介绍(上)
查看>>
洛谷 P3984 高兴的津津
查看>>
洛谷 P1308 统计单词数
查看>>
使用GitHub
查看>>
1.25回溯 n皇后问题,素数环,困难的串
查看>>
大量界面刷新时手动Dispose也是有必要的
查看>>
机电传动控制第三周学习笔记
查看>>
删除.gitignore中的在version control中的文件
查看>>
java精确计算、精确计算工具类
查看>>
操作系统实验零——操作系统实验环境准备
查看>>