What is StrictMode in react?

后端 未结 2 1223
北恋
北恋 2020-12-03 10:20

I heard that strict mode helps to write React code in best practices way by throwing warnings for life cycle methods removal.

I read about it from https://medium.co

相关标签:
2条回答
  • 2020-12-03 10:36

    React's StrictMode is sort of a helper component that will help you write better react components, you can wrap a set of components with <StrictMode /> and it'll basically:

    • Verify that the components inside are following some of the recommended practices and warn you if not in the console.
    • Verify the deprecated methods are not being used, and if they're used strict mode will warn you in the console.
    • Help you prevent some side effects by identifying potential risks.

    As the documentation says, strict mode is development oriented so you don't need to worry about it impacting on your production build.

    I've found it especially useful to implement strict mode when I'm working on new code bases and I want to see what kind of code/components I'm facing. Also if you're on bug hunting mode, sometimes it's a good idea to wrap with <StrictMode /> the components/blocks of code you think might be the source of the problem.

    So yeah, you're in the correct path to understanding strict mode, keep it up, I think it's one of those things you understand better when you play with them, so go ahead and have some fun.

    0 讨论(0)
  • 2020-12-03 10:37

    Warning: StrictMode will render the components twice only on the development mode not production.

    For instance, if you're using getDerivedStateFromProps method like so

       static getDerivedStateFromProps(nextProps, prevState){// it will call twice
            if(prevState.name !== nextProps.name){
                console.log(`PrevState: ${prevState.name} + nextProps: ${nextProps.name}`) 
                return { name: nextProps.name }
            }
            return {}
        }
    

    The getDerivedStateFromProps method will call twice.

    Just to let you know this is not a problem, it's just because you're wrapping your main component with <StrictMode> in the index.js file.

    StrictMode renders components twice in order to detect any problems with your code and warn you about them.

    0 讨论(0)
提交回复
热议问题