• react中的redux(入门)


    redux

    通过 npm  下载  reddux

    1.创建一个 store.js 文件

    //  store.js
    
    // 生成store这个对象的
    import {createStore} from 'redux'
    //creaeStore这个方法的参数必须是一个函数,这个函数我们叫reductor,且有俩个参数 state和action
    var store=createStore(function(state=10,action){
        console.log(action)
        switch(action.type){
            case 'ADD':
                return state+action.payload
            case 'JIAN':
                return state-action.payload
            default:
                return state
        }
        //必须返回一个新的state值
    })
    
    export default store

    2.现在  只要 将 store 文件 引入 想要 使用数据 的文件 

    就可以 通过  store.getState() 就可以 获取到 你存储的 state 值

    以App.js 为例

    //  App.js
    
    import React from 'react';
    import './App.css';
    //  将 store 引入 要 使用的文件中 import store
    from './Redux/store' class App extends React.Component{ constructor(props){ super(props) this.fn=this.fn.bind(this) } render(){ return( <div> <button onClick={this.fn}>+</button> <div>{store.getState()}</div> </div> ) } fn(){
      //dispath 调用 对应方法 payload传值 由store文件中的 action 接收 store.dispatch({type:
    'ADD',payload:5}) } } export default App;

    3. 为了 保证  也页面  使用 的数据在修改后 重新渲染 需要 index.js 文件 改动

    store有subscribe的方法 用于监听 

    //   index.js
    
     4 import React from 'react';
    import ReactDOM from 'react-dom';
    import './index.css';
    import App from './App';
    import * as serviceWorker from './serviceWorker';
    import store from './Redux/store'
    ReactDOM.render(<App />, document.getElementById('root'));
    //store.subscribe方法设置监听函数,一旦 State 发生变化,就自动执行这个函数。
    store.subscribe(function(){
        ReactDOM.render(<App />, document.getElementById('root'));
    });
    // If you want your app to work offline and load faster, you can change
    // unregister() to register() below. Note this comes with some pitfalls.
    // Learn more about service workers: https://bit.ly/CRA-PWA
    serviceWorker.unregister();
  • 相关阅读:
    [leetCode]100.相同的树
    [leetCode]88.合并两个有序数组
    [leetCode]83.删除排序链表中的重复元素
    排序算法总结
    [leetCode]69. x 的平方根
    POJ 1151 Atlantis
    POJ 3468 A Simple Problem with Integers
    SGU 271 Book Pile
    POJ 2970 The lazy programmer
    FZU 2254 英语考试
  • 原文地址:https://www.cnblogs.com/Shinigami/p/11593883.html
Copyright © 2020-2023  润新知