# FAQ

## Table of Contents

* **General**
  * [When should I learn Redux?](https://redux-ru.js.org/general#general-when-to-learn)
  * [When should I use Redux?](https://redux-ru.js.org/general#general-when-to-use)
  * [Can Redux only be used with React?](https://redux-ru.js.org/general#general-only-react)
  * [Do I need to have a particular build tool to use Redux?](https://redux-ru.js.org/general#general-build-tools)
* **Reducers**
  * [How do I share state between two reducers? Do I have to use combineReducers?](https://redux-ru.js.org/reducers#reducers-share-state)
  * [Do I have to use the switch statement to handle actions?](https://redux-ru.js.org/reducers#reducers-use-switch)
* **Organizing State**
  * [Do I have to put all my state into Redux? Should I ever use React's setState()?](https://redux-ru.js.org/organizing-state#organizing-state-only-redux-state)
  * [Can I put functions, promises, or other non-serializable items in my store state?](https://redux-ru.js.org/organizing-state#organizing-state-non-serializable)
  * [How do I organize nested or duplicate data in my state?](https://redux-ru.js.org/organizing-state#organizing-state-nested-data)
* **Store Setup**
  * [Can or should I create multiple stores? Can I import my store directly, and use it in components myself?](https://redux-ru.js.org/store-setup#store-setup-multiple-stores)
  * [Is it OK to have more than one middleware chain in my store enhancer? What is the difference between next and dispatch in a middleware function?](https://redux-ru.js.org/store-setup#store-setup-middleware-chains)
  * [How do I subscribe to only a portion of the state? Can I get the dispatched action as part of the subscription?](https://redux-ru.js.org/store-setup#store-setup-subscriptions)
* **Actions**
  * [Why should type be a string, or at least serializable? Why should my action types be constants?](https://redux-ru.js.org/actions#actions-string-constants)
  * [Is there always a one-to-one mapping between reducers and actions?](https://redux-ru.js.org/actions#actions-reducer-mappings)
  * [How can I represent “side effects” such as AJAX calls? Why do we need things like “action creators”, “thunks”, and “middleware” to do async behavior?](https://redux-ru.js.org/actions#actions-side-effects)
  * [Should I dispatch multiple actions in a row from one action creator?](https://redux-ru.js.org/actions#actions-multiple-actions)
* **Immutable Data**
  * [What are the benefits of Immutability?](https://redux-ru.js.org/immutable-data#benefits-of-immutability)
  * [Why is immutability required in Redux?](https://redux-ru.js.org/immutable-data#why-is-immutability-required)
  * [Do I have to use Immutable.JS?](https://redux-ru.js.org/immutable-data#do-i-have-to-use-immutable-js)
  * [What are the issues with using ES6 for immutable operations?](https://redux-ru.js.org/immutable-data#issues-with-es6-for-immutable-ops)
* **Using Immutable.JS with Redux**
  * [Why should I use an immutable-focused library such as Immutable.JS?](https://redux-ru.js.org/recipes/using-immutable.js-with-redux#why-use-immutable-library)
  * [Why should I choose Immutable.JS as an immutable library?](https://redux-ru.js.org/recipes/using-immutable.js-with-redux#why-choose-immutable-js)
  * [What are the issues with using Immutable.JS?](https://redux-ru.js.org/recipes/using-immutable.js-with-redux#issues-with-immutable-js)
  * [Is Immutable.JS worth the effort?](https://redux-ru.js.org/recipes/using-immutable.js-with-redux#is-immutable-js-worth-effort)
  * [What are some opinionated Best Practices for using Immutable.JS with Redux?](https://redux-ru.js.org/recipes/using-immutable.js-with-redux#immutable-js-best-practices)
* **Code Structure**
  * [What should my file structure look like? How should I group my action creators and reducers in my project? Where should my selectors go?](https://redux-ru.js.org/code-structure#structure-file-structure)
  * [How should I split my logic between reducers and action creators? Where should my “business logic” go?](https://redux-ru.js.org/code-structure#structure-business-logic)
  * [Why should I use action creators?](https://redux-ru.js.org/code-structure#structure-action-creators)
* **Performance**
  * [How well does Redux “scale” in terms of performance and architecture?](https://redux-ru.js.org/performance#performance-scaling)
  * [Won't calling “all my reducers” for each action be slow?](https://redux-ru.js.org/performance#performance-all-reducers)
  * [Do I have to deep-clone my state in a reducer? Isn't copying my state going to be slow?](https://redux-ru.js.org/performance#performance-clone-state)
  * [How can I reduce the number of store update events?](https://redux-ru.js.org/performance#performance-update-events)
  * [Will having “one state tree” cause memory problems? Will dispatching many actions take up memory?](https://redux-ru.js.org/performance#performance-state-memory)
  * [Will caching remote data cause memory problems?](https://redux-ru.js.org/performance#performance-cache-memory)
* **Design Decisions**
  * [Why doesn't Redux pass the state and action to subscribers?](https://redux-ru.js.org/design-decisions#does-not-pass-state-action-to-subscribers)&#x20;
  * [Why doesn't Redux support using classes for actions and reducers?](https://redux-ru.js.org/design-decisions#does-not-support-classes)&#x20;
  * [Why does the middleware signature use currying?](https://redux-ru.js.org/design-decisions#why-currying)
  * [Why does applyMiddleware use a closure for dispatch?](https://redux-ru.js.org/design-decisions#closure-dispatch)
  * [Why doesn't `combineReducers` include a third argument with the entire state when it calls each reducer?](https://redux-ru.js.org/design-decisions#combineReducers-limitations)
  * [Why doesn't `mapDispatchToProps` allow use of return values from `getState()` or `mapStateToProps()`?](https://redux-ru.js.org/design-decisions#no-asynch-in-mapDispatchToProps)
* **React Redux**
  * [Why isn't my component re-rendering, or my mapStateToProps running?](https://redux-ru.js.org/react-redux#react-not-rerendering)
  * [Why is my component re-rendering too often?](https://redux-ru.js.org/react-redux#react-rendering-too-often)
  * [How can I speed up my mapStateToProps?](https://redux-ru.js.org/react-redux#react-mapstate-speed)
  * [Why don't I have this.props.dispatch available in my connected component?](https://redux-ru.js.org/react-redux#react-props-dispatch)
  * [Should I only connect my top component, or can I connect multiple components in my tree?](https://redux-ru.js.org/react-redux#react-multiple-components)
* **Miscellaneous**
  * [Are there any larger, “real” Redux projects?](https://redux-ru.js.org/miscellaneous#miscellaneous-real-projects)
  * [How can I implement authentication in Redux?](https://redux-ru.js.org/miscellaneous#miscellaneous-authentication)
