react hooks中用useReducer实现useState原理
function useCustomState(initialState) {
const reducer = ( state, action) => {
if (typeof action === 'function') {
return action(state);
}
return action;
};
const [state, dispatch] = useReducer(reducer, initialState);
// setState 和 dispatch 一样引用也不变的
const setState = useCallback(action => {
dispatch(action);
}, []);
return [state, setState];
}