Vuex 是什么?

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。

以上是官方文档对xuex的定义,对于vuex的官方文档讲的很详细,但是对于一个前端菜鸟来说,表示看不懂,看完过后很懵逼(比如小胖纸)。基础知识太薄弱,理解起来很费劲。但是有想用vuex做状态管理怎么办,只有想办法咯,慢慢磨出来的。

以下简述vuex的state,mutations,actions怎么配合使用,形成一个完整的流程,很简单的一个功能实现。

目录结构:

主要通过配合使用store里面的 action Index mutation-types mutation.js的使用。

isSelect 初始状态为 false ,点击确定isSelect = true , 点击取消 isSelect  = false ;

第一步: Index.js  

在state里面申明一个变量  is_select ,作为状态管理

import Vue from "vue";
import Vuex from "vuex";
import mutations from "./mutations";
import actions from "./action";
import getters from "./getters"; Vue.use(Vuex)
//所有的状态树
const state = {
is_select: false
}; export default new Vuex.Store({
state,
getters,
actions,
mutations,
})

第二步: 在 mutation.js  书写状态管理的逻辑函数

export default {
/**
* 书写所有的状态管理逻辑函数
* Mutations必须是同步函数
* @constructor
*/
CHECH_SELECT(state,res){
//写业务逻辑
state.is_select = res;
console.log(res)
}
}

第三步: 在 mutation-types.js  把在 mutation.js中写的函数抛出

//配置vuex调用的Mutations逻辑
export const CHECH_SELECT = 'CHECH_SELECT'

第四步: 在 action.js  从定义的Mutations逻辑函数中取需要用到的逻辑函数

import {CHECH_SELECT} from "./mutation-types.js"; //从定义的Mutations逻辑函数中取需要用到的逻辑函数
/**
*Action 类似于 mutation,不同在于:
*Action 提交的是 mutation,而不是直接变更状态。
* Action 可以包含任意异步操作。
*/
export default {
async check_select({commit}, is_select) {
commit(CHECH_SELECT, is_select)
}
}

通过commit提交mutation来改变state中的 is_select 值的变化

第五步:在 xxx.vue中实现点击确定取消,来触发改变 is_select  的值 

 methods:{
commits(){
const _self = this;
_self.$store.dispatch("check_select",true)
.then(function () {
_self.isSelect = _self.$store.state.is_select;
}) },
cancels(){
const _self = this;
_self.$store.dispatch("check_select",false)
.then(function () {
_self.isSelect = _self.$store.state.is_select;
})
},
}

经过五个步骤,就可以完成一个炒鸡简单的通过vuex来进行的状态管理,以上仅仅是为了实现功能,想说出个所以然,但有理解太浅,只能实现功能,不清楚为什么。接下来在深入去了解,仔细品下官方文档。

浅谈vuex使用方法(vuex简单实用方法)的更多相关文章

  1. vuex的module的简单实用方法

    当我们的项目越来越大的时候,我们就开始使用vuex来管理我们的项目的状态.但是如果vuex的状态多了呢,这个时候module就登场了.看了一下官方的文档,很详细,但是没有demo让初学者很头疼.那我就 ...

  2. 浅谈分词算法基于字的分词方法(HMM)

    前言 在浅谈分词算法(1)分词中的基本问题我们讨论过基于词典的分词和基于字的分词两大类,在浅谈分词算法(2)基于词典的分词方法文中我们利用n-gram实现了基于词典的分词方法.在(1)中,我们也讨论了 ...

  3. 浅谈使用spring security中的BCryptPasswordEncoder方法对密码进行加密与密码匹配

    浅谈使用springsecurity中的BCryptPasswordEncoder方法对密码进行加密(encode)与密码匹配(matches) spring security中的BCryptPass ...

  4. 浅谈Android中的startActivityForResult和setResult方法

    引言 我们知道,如果想打开一个新的Activity我们可以使用startActivity方法.今天我们介绍的startActivityForResult不仅可以打开全新的Activity,而且当新的A ...

  5. 浅谈javascript中的call与apply方法

    call方法与apply方法都是为了改变函数体内部this的指向. call方法与apply方法,这二者的作用完全一样,只是接受参数的方式不太一样. apply()方法: Function.apply ...

  6. bootstrapValidator.js,最好用的bootstrap表单验证插件 简单实用方法

    实用方法 1.引入 在有jquery和bootstrap的页面里引入bootstrapValidator.js和bootstrapValidator.css文件 2. 按照bootstrap的表单组件 ...

  7. 浅谈 JS 内存泄露方式与避免方法(二)

    Concept WHAT : 内存泄露是指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束.正常情况下,垃圾回收器在DOM元素和event处理器不被引用或访问的时候回收它们.但是,IE的早些 ...

  8. 《转》 浅谈C# 多态的魅力(虚方法,抽象,接口实现)

    前言:我们都知道面向对象的三大特性:封装,继承,多态.封装和继承对于初学者而言比较好理解,但要理解多态,尤其是深入理解,初学者往往存在有很多困惑,为什么这样就可以?有时候感觉很不可思议,由此,面向对象 ...

  9. Smart3D系列教程1之《浅谈无人机倾斜摄影建模的原理与方法》

    一.引言 倾斜摄影测量技术是国际测绘遥感领域近年发展起来的一项高新技术,以大范围.高精度.高清晰的方式全面感知复杂场景,通过高效的数据采集设备及专业的数据处理流程生成的数据成果直观反映地物的外观.位置 ...

随机推荐

  1. 浅谈mybatis如何半自动化解耦

    在JAVA发展过程中,涌现出一系列的ORM框架,JPA,Hibernate,Mybatis和Spring jdbc,本系列,将来研究Mybatis. 通过研究mybatis源码,可将mybatis的大 ...

  2. MyBatis之整合Spring

    MyBatis之整合Spring 整合思路: 1.SqlSessionFactory对象应该放到spring容器中作为单例存在 2.传统dao的开发方式中,应该从spring容器中获得sqlSessi ...

  3. PHP信号管理

    PHP信号管理   SIGHUP     终止进程     终端线路挂断 SIGINT     终止进程     中断进程 SIGQUIT    建立CORE文件终止进程,并且生成core文件 SIG ...

  4. vue学习记录①(vue-cli脚手架构建项目结构)

    我们直接从vue的工程化开始入手. 在这里用git命令行搭建项目环境.(当然直接cmd命令行下也是一样的) git下载安装地址:https://www.git-scm.com/download/win ...

  5. Vue基础知识

    Vue特性: 双向数据绑定 通过 指令 扩展了 HTML,通过 表达式 绑定数据到 HTML 解耦视图与数据 可复用组件 虚拟DOM -> 对象 M-V-VM 数据驱动视图 Vue声明周期: b ...

  6. 47.Odoo产品分析 (五) – 定制板块(2) – 为业务自定义odoo(2)

    查看Odoo产品分析系列--目录 Odoo产品分析 (五) – 定制板块(2) – 为业务自定义odoo(1) 4 添加自定义字段 定制odoo的最普通的原因就是指定到公司的附加信息.如果您正在运行一 ...

  7. 【Android】用Cubism 2制作自己的Live2D——初见!

    前言- 现在很多手游的UI上都不约而同的放置一个Live2D模型,这仿佛已经成为了一个业界的潜规则之类的东西.作为一名深受手机游戏毒害的90后,我也没有忘记小时候励志当一名技术宅的梦想,也想试试自己做 ...

  8. C语言经典算法 - 多维矩阵转一维矩阵的代码

    下边内容内容是关于C语言经典算法 - 多维矩阵转一维矩阵的内容,应该能对码农也有好处. #include <stdio.h>#include <stdlib.h>int mai ...

  9. iOS:我的学习路径

    1.复习C语言(半个月) <C Primer Plus>1-6章 2.学习Objective-C基础语法(一周) 黑马程序员视频 3.直接用Xcode开始APP的实战(半个月) 黑马程序员 ...

  10. Go 定时任务

    本文基于Golang Crontab 实现了一个Crontab Job Manager.更加容易使用,同时也能够满足更加复杂的场景. 仓储地址, 如果有用,欢迎点赞,欢迎讨论,欢迎找茬. 需求 在开发 ...