Redux

Posted jffun-blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redux相关的知识,希望对你有一定的参考价值。

Redux 中文文档

基本使用

步骤

  1. 创建action
  2. 创建执行action的reducer
  3. 根据reducer创建store

流程

actions(一个oject) ---通过调用dispatch传给---> reducers(接收state和action,返回新的state) ---使用其返回值---> 改变store中的state

代码

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    
    <title>Document</title>
</head>

<body>
    <script src="https://unpkg.com/[email protected]/dist/redux.min.js"></script>
    <script>
        // 1.创建action
        function add(content) {
            return {
                type: "ADD",
                content
            }
        }

        function del(content) {
            return {
                type: "DEL",
                content
            }
        }
        
        // 2. 创建执行action的reducer
        function list(state = [], action) {
            switch (action.type) {
                case "ADD":
                    return [...state, action.content];
                case "DEL":
                    let i = state.findIndex(d => d == action.content);
                    if (i > -1) {
                        var t = [...state];
                        t.splice(i, 1);
                        return t;
                    } else {
                        return state
                    }

                default:
                    return state
            }
        }

        const testApp = Redux.combineReducers({
            list
        })
        
        // 3. 根据reducer创建store
        let store = Redux.createStore(testApp);
        
        // 测试
        console.log(store.getState());

        store.dispatch(add(‘123‘));
        store.dispatch(add(‘456‘));
        store.dispatch(add(‘789‘));
        console.log(store.getState());

        store.dispatch(del(‘456‘));
        console.log(store.getState());
    </script>
</body>

</html>

以上是关于Redux的主要内容,如果未能解决你的问题,请参考以下文章

提供商无法访问redux商店

Relay 和 redux - initialVariables

将状态传递给 React/Redux 中的递归嵌套组件

Redux&React路由器:梳理调度和导航(history.push)

无法解析容器中的存储(React,Redux)

VSCode配置