美文网首页react
最简的redux教程

最简的redux教程

作者: louhangfei | 来源:发表于2017-05-11 16:22 被阅读31次

    自己按照教程手敲了一遍redux简单教程,最后终于通过了,纪念一下。

    Notice

    1. 需要用到loadsh的deepclone功能。
    2. 从state复制出nextState之后,直接在nextState上操作数据。
    var nextState=_.cloneDeep(state);
    nextState.todos.push({"content":action.content});
    return nextState;
    
    <!DOCTYPE html>
    <html>
    <head>
      <script src="./redux.min.js"></script>
        <script src="https://cdn.jsdelivr.net/lodash/4.17.3/lodash.min.js"></script>
    </head>
    <body>
        <button onclick="add()">+</button>
        <button  onclick="mini()">-</button>
        <input type="text" id="content"><button onclick="push()">ok</button>
    <script>
     
        function incCreator(){
            return {type:'INCREMENT'}
        };
        function decCreator(){
            return {type:"DECREMENT"}
        }
        function pushCreator(content){
            return {type:"PUSH",content:content}
        }
        var initState={
            count:0,
            todos:[]
        }
        function reducer(state,action){
            //设置state初始值
            state = state || initState;
            switch(action.type){
                case 'INCREMENT':
                    var nextState=_.cloneDeep(state)
                    
                    nextState.count++;
                    return nextState;
                     
                case 'DECREMENT':
                    var nextState=_.cloneDeep(state)
                    nextState.count--;
                    return nextState;
                case 'PUSH':
                    // var group=state.contentGroup;
                    var nextState=_.cloneDeep(state);
                    nextState.todos.push({"content":action.content})
                    return nextState;
                default:
                    return state;
            }
        }
    
        var store=Redux.createStore(reducer);
        var state=store.getState();
        function add(){
            
            store.dispatch(incCreator())
            console.log(store.getState())
        }
        function mini(){
            store.dispatch(decCreator())
            console.log(store.getState())
        }
        function push(){
            var str=document.getElementById("content").value;
            store.dispatch(pushCreator(str))
            console.log(store.getState())
        }
    
    </script>
    </body>
    </html>
    

    相关文章

      网友评论

        本文标题:最简的redux教程

        本文链接:https://www.haomeiwen.com/subject/fwgotxtx.html