# React.js Hooks
## 1. Why do we use hooks ?
- Reusable logics
- Split code to avoid large components with complicated logics
- Shorter and cleaner code
## 2. Rules of writing hooks:
- Only call hooks from a top level
Which means never calling a hook inside conditional statements and loops
- Only call hooks inside React functions or within another hook
- Always name your custom hooks starting from the "use" keyword
## 3. Some Important built in hooks:
- useEffect()
- useCallback()
- useMemo()
- useReducer()
- useContext()
- etc.
## 4. Custom Hooks:
- Custom hooks is a function that the name start with the word use and can manage life cycle, manage state and call other hooks
- Benefits of writing custom hooks:
+, Reusable code
+, Helps keeps component code neat and clean
+, Abstract operations, an example of declartive programming
## 5. Custom Hooks vs HOCs:
Both of the approach allow us to re-use logics and operations with different react.js components. Hooks are more clean to implement. Here are some differences between the 2:
