[关闭]
@2890594972 2018-05-23T09:20:00.000000Z 字数 1894 阅读 678

react redux

react react教学


参考文档: http://www.redux.org.cn

redux

1、如何引入

  1. import { createStore } from 'reudx';

2、创建store

  1. const store = createStore(fn);//fn是一个函数。

3、描述行为

  1. const add = {
  2. type: "ADD"
  3. }
  4. const dec = {
  5. type: "DEC"
  6. }

4、reducer函数创建

//对于它不同的行为,我们要返回不同的值。

  1. const default = 0;
  2. function fn(state = default, action){
  3. switch (action.type){
  4. case "ADD":
  5. return ++state;
  6. break;
  7. case "DEC":
  8. return --state;
  9. break;
  10. default:
  11. return state
  12. }
  13. }

5、store的使用

  1. var state = store.getState();
  2. store.dispatch()——触发一个行为
  3. store.subscribe()——添加监听事件
  4. /**
  5. * Created by mapbar_front on 2017/11/18.
  6. */
  7. import React, { Component } from 'react';
  8. import { render } from 'react-dom';
  9. //第三、createStore使用reducers得到store对象
  10. import { createStore } from 'redux';
  11. const store = createStore(reducer);
  12. console.log(store);
  13. //第四、store这个对象,是一个含有dispath、getState、subscribe三个方法的对象。
  14. //dispath——用来触发一个行为。
  15. //getState——用来得到当前stote对象的状态
  16. //subscribe——用来注入监听store对象改变的函数。
  17. //第一、action是一种行为。用一个对象定义。
  18. const add = {
  19. type: 'ADD'
  20. };
  21. const dec = {
  22. type: 'DEC'
  23. };
  24. //2、reducer函数
  25. function reducer(state = 0, action) {
  26. switch (action.type){
  27. case 'ADD':
  28. return ++state;
  29. break;
  30. case 'DEC':
  31. return --state;
  32. break;
  33. default:
  34. return state
  35. }
  36. }
  1. class App extends Component{
  2. constructor(props){
  3. super(props);
  4. this.state = {
  5. number: 0
  6. }
  7. }
  8. addEvent(){
  9. store.dispatch(add)
  10. }
  11. decEvent(){
  12. store.dispatch(dec)
  13. }
  14. componentDidMount(){
  15. var _this = this;
  16. store.subscribe(function () {
  17. console.log(store.getState());
  18. _this.setState({
  19. number: store.getState()
  20. })
  21. })
  22. }
  23. render(){
  24. return (
  25. <div>
  26. <h1>hello</h1>
  27. <button onClick={()=>this.decEvent()}>-</button>
  28. <span>name:{ store.getState() }</span>
  29. <button onClick={()=>this.addEvent()}>+</button>
  30. </div>
  31. )
  32. }
  33. }
  34. render(<App />,document.getElementById('root'));

第二章节:搭配react。

  1. import { Provider } from 'react-redux';
  2. <Provider store={store}></Provider>
  3. import { connect } from 'react-redux';
  4. export default connect((state)=>{
  5. return {
  6. state:state
  7. }
  8. })(App)

————————————————————————————示例和场景——————————————————————————————
//开始状态下{};

//登录之后{ userName: 'mapbar_front',password: 123456}

//Other界面,编辑用户名称,{ userName: 'liwudi',password: 123456}

//最后,在home界面,我的用户名称发生改变。

核心逻辑:

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注