React Hook Lifecycle – control WHEN functions are executed

By defining the dependencies in your #useEffect method, you can control the execution of methods and the rendering.

Execute only once when component is first rendered
By passing an empty array for a #useEffect method, you guarantee that the method is only executed once:

useEffect(() => {
     //do something....
}, [])

Now it behaves like #componentDidMount in the old React class architecture.

Execute after every render cycle
If no array is passed to #useEffect, the method will be executed AFTER EVERY render cycle:

useEffect(() => {
     //do something...
})//no array here

Execute only if some value has changed
If #useEffect shall only be executed when a certain variable has changed, do:

useEffect(() => {
     //do something...
   ...myValue...
}, [myValue])//myValue defined in the array

Helper functions in JavaScript / JS – use lodash

For instance in my JS Applications I do often need some helper functions, like I know them from Java, like #equals etc..

lodash provide an elegant suite of helper tools.
For instance in my React App, I do

import _ from "lodash";

And I can use their functions, like in this example:

if (_.isEmpty(this.myFooAttribute)) {...

Of course you need lodash as a dependency.
In your package.json do:

 "dependencies": {
     ...
    //version is an example. I always try to use the latest.
    "lodash": "^4.17.15",