- runs after every render
- doesn't merge state like classes
- rules used only at top level, not inside loops or nested funcs, therefore just React func components and react custom hook.
- Effects aren't synchronous, ie render doesn't neccessarily run after it, use Layout hook to be synchronous.
- Effect hook should return a func, if something is to be run after it's done, like unsubscribe.