如果是基于 Redux 等单 Store 形式来构建单页应用,那么需要注意,大多数时候,切换页面时(如前进、后退或直接访问),需要注意状态的重置。
如果用的是 react-router-redux,那么需要在切换后做 reset 的页面的 reducer 中,在 action 是 LOCATION_CHANGE1 时,返回该 reducer 的 initState。如:
// reducers/page1.js
import { LOCATION_CHANGE } from 'react-router-redux';
import * as actions from '../../actions/page1';
const initialState = {
  list: ['默认文本'],
};
export default function index(state = initialState, action) {
  switch (action.type) {
    case LOCATION_CHANGE:
      return initialState;
    case actions.ADD_TEXT:
      return Object.assign({}, state, {
        list: [action.data, ...state.list],
      });
    default:
      return state;
  }
}
如果用的是 connected-react-router,也类似。
// reducers/counter.js
import { LOCATION_CHANGE } from 'connected-react-router';
const counterReducer = (state = 0, action) => {
  switch (action.type) {
    case LOCATION_CHANGE:
      return 0;
    case 'INCREMENT':
      return state + 1
    case 'DECREMENT':
      return state - 1
    default:
      return state
  }
}
export default counterReducer