4

What is the purpose of using subscribe in code like store.subscribe(render)? Doesn't using mapStateToProps and connect already cause the connected component to re-render each time the store's state changes?

stackjlei
  • 9,485
  • 18
  • 65
  • 113

2 Answers2

13

Quoting the Redux.js page:

Technically you could write the container components by hand using store.subscribe(). We don't advise you to do this because React Redux makes many performance optimizations that are hard to do by hand. For this reason, rather than write container components, we will generate them using the connect() function provided by React Redux,

If you're already using react with redux, you might as well use their package, since it is already optimized.

Also referencing a previous answer: https://stackoverflow.com/a/36214059/3938413

Community
  • 1
  • 1
Sean Kwon
  • 907
  • 6
  • 12
5

The examples showing store.subscribe(render) are using small code snippets showing you the basic way to hook redux into react.

store.subscribe comes from the redux package. connect comes from the react-redux package and is not a part of redux itself.

The react-redux package uses store.subscribe to hook itself into the redux dispatch cycle. You can then access the redux store by using the connect component enhancer.

Third party libs (or middleware for example) can hook into the store lifecycle via store.subscribe.

hunterc
  • 1,957
  • 2
  • 15
  • 18