Framework or Library?
React updates DOM in a very special way. If we make any changes in DOM React does not replace the whole DOM rather React makes a virtual DOM and comper between two DOM. If React finds any changes there, React just updates the only that changing without replacing the whole DOM. That’s why React is so fast.
We can create reusable, composable, and stateful components in React. We don’t need to repeat our code if we use components. Components make our code clean, simple, and easy to read. We define small components and then put them together to form bigger ones. All components small or big are reusable, even across different projects. e can reuse a single component in multiple UIs and components can contain other components.
React Hooks are nothing but a special function. Hooks are usually begun with the “use” word. For example “useState”, “useEffect”, “useContext”, “useReducer”, “useCallback”, and so on. React hook functions can only be used in functional components. We can’t use them in class components.
React create an element with React.createElement(component, props, …children) this function. JSX is the syntactic sugar of this function. React compile this JSX into that function. JSX element’s name should start with a capital letter. Just like normal HTML attributes, we can set props in JSX.
If you are learning React then you should definitely know that what props are? We pass different types of data using props. But if we pass the wrong data type through props. Suppose, we have written a component where we are mapping an array. But accidentally, we pass an object. Here is an npm package called props-types, which helps us to debug. This is not an alternative to typescript. We can just check props’ type whit it.
Well, we can not use if…else conditional statement in JSX. But sometimes we need to conditionally render state or JSX element. Suppose, you have a state isNew. If isNew is equal to true then you want to show a green background color in the JSX element. But if isNew is equal to false then you want to show a gray background color in the JSX element. Though we can not use if…else in JSX, we can use the ternary operator. It is easier than if…else. If you don't know what ternary operator is, Ternary is the simplest version of if…else.
Every React newcomer thinks that they need to use Flux implementation like Redux. Redux is great. It’s the most popular Flux implementation but we might need it. If we are learning React, if our app is small, if we don’t need a global state or we don’t have any problems with tracking the state changes in our app, We don’t need to use it.
Single Page Application
We can create a single-page web application using React. This feature makes React more powerful. If we create a single-page web application, our website will be faster than any other normal website. Because we need to load only one page to show. Instead of rendering many pages, we will render many components. That’s why when we visit one page to another our browser does not refresh the whole new page. Instead of doing this browser only render the specific components.