An useEffect that does not run on first render
The useWatcher React hook runs a function when a prop, state or other value changes, and gives you easy access to both the previous and next values. Think of it as the functional equivalent of componentDidUpdate and getDerivedStateFromProps.