博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react使用之ruex状态管理
阅读量:6608 次
发布时间:2019-06-24

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

一、安装 ruex

npm install ruex复制代码

使用:

import React, { Component } from 'react'; import { Button,Input} from 'antd';  import {connect} from 'ruex';   class App extends Component {    constructor(props){      super(props)      this.state={}    }         render() {       const {total_num,isshow,numbers} = this.props       return (         
); } } const mapStateToProps = (state)=>({//传入需要更改状态的值 total_num:state.total_num, isshow:state.isshow, numbers:state.numbers }) const mapMutationsToProps = ['add','cut'];//直接通过更改mutations改变数据 const mapActionsToProps = ['addliat','cutAsync','addPromise','isshowsAsync','change_num'];//通过action操作mutations,从而更改数据状态 export default connect( mapStateToProps, mapMutationsToProps, mapActionsToProps )(App);复制代码

在src下创建文件夹store(名字任意起) 创建 actions.js store.js mutations.js types.js

在types.js中

export const ADD_NUM = 'ADD_NUM' //增加export const CUT_NUM = 'CUT_NUM' //减少复制代码

在 mutations.js中

import * as types from './types' export const mutations={[types.ADD_NUM](state,payload){     state.total_num +=payload}[types.CUT_NUM](state,payload){ state.total_num -=payload}}复制代码

在actions.js中

import * as types from './types' export const actions = {addliat({state,commit,rootState,dispatch},payload){    commit(types.ADD_NUM,payload)},cutAsync({state,commit,rootState,dispatch},payload){ commit(types.CUT_NUM,payload)} }复制代码

在store.js中

import {createStore} from 'ruex'import {mutations} from './mutations'import {actions} from './actions' const state={total_num:50} //中间件打印cosnt logger = (state)=>(next)=>(mutations,payload)=>{console.group('改变mutations之前',store.getState())next(mutations,payload)console.group('改变mutations之后',store.getState())} const store =createState({    state,mutations,actions},[logger])export default store  复制代码

最后在主页使用index.js

import React from 'react';import ReactDOM from 'react-dom';import {Provider} from 'ruex';  //1import store from './store/store'//2import App from './App';//3import registerServiceWorker from './registerServiceWorker';  ReactDOM.render( 
//4
, document.getElementById('root'));registerServiceWorker();复制代码

转载地址:http://hkdso.baihongyu.com/

你可能感兴趣的文章
《用友ERP-U8(8.72版)标准财务模拟实训》——1.4 系统管理注册和导入演示账套...
查看>>
《Node.js区块链开发》一3.6 总结
查看>>
《CCNP TSHOOT 300-135学习指南》——2.1节故障检测与排除方法及流程
查看>>
《UG NX8.0中文版完全自学手册》一2.8 布尔运算
查看>>
pera 发布新概念浏览器 Neon ,内置分屏模式
查看>>
移动阅读时代“长文章”生存状态调查
查看>>
《深入理解JavaScript》——1.7 运算符
查看>>
springboot docker笔记
查看>>
跟我一起学QT3:电子表格的制作
查看>>
mysql char和varchar区别
查看>>
Modbus RTU 通信工具设计
查看>>
服务化改造实践 | 如何在 Dubbo 中支持 REST
查看>>
Memcached的备份负载
查看>>
快速预览Office 15服务端:Exchange 2013
查看>>
echo(),print(),print_r()三者的区别
查看>>
Mac上面Docker构建镜像时超时
查看>>
Logwatch linux日志监视器解析
查看>>
【第8章】JVM内存管理
查看>>
easyui datagrid plunges 扩展 插件
查看>>
Maven发布本地jar包及部署到远程服务器
查看>>