dva/model

```

reducers: {

    // 用于处理数据,定义一些action 用于effects激发,唯一能修改state的地方

    // 格式为 (state, action) => newState 或 [(state, action) => newState, enhancer]

    // 例如:给state 加一个字段fieldA

    doSomething(state, payload){ return {...state, fieldA: payload.fieldA}; }

},

effects: {

    // 定义一些action,用于subscriptions中激发

    *action1(payload, {put,call,select,take}) {

        // put 用于发起action调用reducers中的函数
        put(type: 'doSomething', payload);

        // call 用于同步调用方法

        const a = yield call(funcName, props);

        // select 用于从state获取数据

        const a = select(state => select.fieldA);

        // take 用于获取发送的数据(不知怎么用给它传啥返回的对象里就包含啥)

    },

    subscriptions: { // app.start()后立即执行

    setup({ dispatch, history }) {

      return history.listen(({ pathname, search }) => {

        console.log(`pathname...: ${pathname}`);

        dispatch({ type: 'namespace/action1' }); // 从这里激发effects中的action

      });

    }

  }

},

```

你可能感兴趣的:(dva/model)