Quick Tips To Mastering React JS For Beginners.
As a leading app development company, we often work with ReactJS for our projects. React is fast, adaptable, and rather simple to use. We thought it is about time we shared our methods and tips about learning ReactJS for beginners!
What is React?
Before we begin, it would be better to first go ahead and ask, what is React? React, or ReactJS is an extensive JavaScript library that was launched by Facebook in 2013. It is used for the front-end development of applications for mobile phones, web browsers, and Smart TVs. To be more specific, ReactJS is the go-to library for frontend developers at the moment for building complex, responsive UI, paving the way for any ReactJS development company.
Why is React so popular?
Admittedly, React is one of the most widely used libraries for UI development. Why is react so popular? This is a no-brainer considering all the trailblazing features of React that makes UI development simple and faster. Features like reusable components and virtual DOMs are perhaps the most sought-after by developers. We will talk more about this later. Also, if you want to know more about the features of ReactJS that make the library unique.
Irrespective of your level of expertise as a developer, simplicity is a factor you would always be seeking. In the beginning, simplicity helps you learn, while in the end, it helps you work faster and do more. The simplicity of ReactJS also makes a large room for experimentation and innovations. This allows you to play around, take risks, and make your wildest ideas come to life.
Why should you learn ReactJS?
Why is using ReactJS advised? Let us take the example of two features of React that I mentioned previously. Reusable components allow developers to code for a component once and then reuse it throughout the project. Say you need a certain tab on every page of your project. Previously, you would have to painstakingly write the code for each one of those tabs on each page. With reusable components, you can simply write the code for a tab once, a component, and call that component on every page. This saves you time and spares you from doing what we call here ‘donkey-work’. Virtual DOMs, another novel concept introduced by React, allow React to make virtual copies of your actual DOMs. This enhances the user experience factor of your UI dramatically. How do virtual DOMs help your UI? Simple, having virtual copies of your DOM helps faster loading and rendering of the components in your UI on the users’ screens.
Leading corporations worldwide are now looking for ReactJS developers. ReactJS helps build super scalable applications with responsive, and therefore immersive UIs. This added to the time and resource optimizations allowed by ReactJS, you are likely to find great value as a ReactJS developer in the present IT industry.
Can you learn ReactJS quickly?
At this point, you could be wondering if it might be difficult to learn using a sophisticated library such as React. Big news, it’s not! You can learn ReactJS and start building your first ReactJS app right after reading this blog! However, that would be possible only if you are already proficient in Javascript, HTML, and CSS.
The React library itself is pretty straightforward and does not take long to get used to. Avid JS developers usually take anywhere between weeks to a couple of months to start building professional projects using ReactJS. The time taken by you to learn React would definitely depend upon your preset knowledge, the type of projects you aspire to work on, and the technique you are following to learn it!
In this blog, I will try to guide you through a model of learning React that I found the most useful. This would likely fast-track your journey of learning ReactJS.
Begin with making a Checklist
Here is a checklist of the things you should have a fair concept of before beginning to learn React. You could be at any level of proficiency at these, but a fundamental knowledge of things is necessary to navigate through ReactJS.
- JavaScript
- HTML
- CSS
- OOP
- Arrow functions
- Let and Const keywords
- Basics of Node.js
- NPM
- Import and Export keywords
- Code Editors
Let us now discuss these in brief, so you understand ‘why’ you need to know these before we proceed!
Programming Languages
JS, HTML, and CSS form the very basics of any frontend development project. Irrespective of whether you are working with ReactJS, or any other framework, you would have a basic component architecture for your project. In simple words, this suggests the manner in which the components of your project are organized and rendered. Programming languages are languages in which you would be describing your components, aka, writing your codes. If you have done frontend development before, you are very likely to know about JavaScript, HTML, and CSS to varying extents. These are programming languages you would need to code your UI.
- JavaScript (JS) - This is the core programming language for most frontend development. You could say that this is the processor for all your codes.
- HyperText Markup Language (HTML) - yes, that is what HTML stands for! As the name suggests, it is a markup language. The simplest way to describe what HTML does is that it tells the system where each component would be located. In a way, it works as the decisive skeleton of the program.
- Cascading Styles Sheet (CSS) - you really do not need to remember the full forms, nobody does. But they make for fun facts, and at the moment, help me describe what they are. CSS decides the styling of the components in your app. That is, it tells the system how your components need to look to your users.
JavaScript ES6
ES6 (ECMAScript2015) is nothing but a version of JavaScript with a lot of distinct features that often get heavily used while working with React. It is therefore wise to have a fundamental idea about some ES6 features before beginning to code with ReactJS. Let me make you a list of the commonest ES6 features you would be coming across while using ReactJS.
Object Oriented Programming (OOP)
Class, Objects, and Method form the primary concepts of Object Oriented Programming in ES6. OOP is simply a method of coding where data is considered to be objects and methods. Objects are user inputs while Methods are data about actions.
- Class- To begin with ReactJs we need to understand what is a Class. A class could be said to be the blueprint for an Object. It consists of constructors and functions. Constructors allocate space for the object while functions decide their actions. In ES6, classes are of two types, superclass, and subclass. Subclasses are classes made from superclasses. They inherit everything from superclasses, except for the constructors. It is important that we know how to declare classes or express them before starting on ReactJS.
- ‘this’- The ‘this’ keyword is used to describe the current instance of an object within a class. ‘this’ behaves differently in JS, so it is better to understand the subtle differences before using this keyword in ReactJS.
- Call (), Apply(), Bind()- These methods are important for binding ‘this’ to its intended object. It helps in setting ‘this’ and its object free from how a function is called. This would be useful to know while coding in ReactJS, especially with callback functions.
Arrow Functions
The arrow function in ES6 helps in shortening the length of the code while using var. It shortens the syntax, making the code more readable. Making codes concise and readable is a major priority in ReactJS, so it would be useful for you to know how the arrow function works. Follow this example:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Old method
function greet()
{
console.log('Sam Stardust');
}
greet();
var greet1 = function(){
console.log('Sam Stardust');
}
greet1();
//ES6 method
var greet2 = () => {
console.log('Sam Stardust');
}
greet2();
Let and Const
Another important thing to note is that although we use var in JS, we use the keywords let and const instead of var in React. These denote different variables and might get a little confusing if you are not used to employing them often. let denotes that a variable is local, using let limits your variable to the block where it is declared. const denotes constant variables, that is, variables whose value cannot be changed.
Node.js
Much like ES6, a fundamental knowledge of Node.js is important before delving into ReactJS. Node.js is not a programming language like ES6 is, it is an ‘execution environment’ for JS. That sentence probably did not make a lot of sense, let me break it down a little. Every browser we use comes with a JavaScript Engine embedded in them. Chrome uses V8, Mozilla Firefox uses SpiderMonkey, and so on. They execute JS code for their browsers. However, it is not possible to perform any operations like OS operations, or network operations while you are outside the browser. Node eliminates this problem. When Node is embedded in the JavaScript Engines, you can perform all these operations from outside the browser. This is because Node.js provides an ‘execution environment’ for JS outside your browser.
NPM
Node Package Manager (NPM) is simply the package manager that helps you organize and install node modules as well as packages. It goes without saying that an idea of NPM is necessary to use Node.js and thereby React.
Import/Export
These are two keywords that you would need while using NPM. Quite simply, the keyword ‘import’ has to be used to use the Node modules or packages you install from NPM. Simultaneously, export is used when we create a module and need to return only a part of it, not the variables and methods.
Code Editors
Code Editors are tools where we write our codes. It is as simple as notepads for codes. Incidentally, developers did once use Notepad, a text editor, for writing codes before code editor tools came into being. If you have written any code, ever, you know what a code editor is. IDEs are sophisticated code editing environments that are used these days. We often use VSCode for ReactJS, but you can use any of your choosing.
The things you need to learn first in React
Considering that you already have a clear concept about the abovementioned things, we can finally start talking about the very first things you would learn as you begin your journey of learning ReactJS.
Create React App
Using create-react-app
you can create an environment where you can, well, play around a little bit. Create React App does not concern itself with handling backend logic or databases. Here you create a simple, one-page frontend pipeline of an app. It uses Babel and webpack under the hood, so you can work on React without worrying about transpilers and module bundlers from the beginning. Consider this step as learning to walk before you run. I highly recommend that you work on simple projects, and use Create React App as your scribble pad, during your journey of learning ReactJS.
Components and Hooks
Components are what ultimately make up your UI. They can be buttons, tabs, search bars, anything! In ReactJS, components are the building blocks. What this achieves for us is that we can visualize our code as independent parts or ‘components’ that can be created, edited, and reused. You could say that a component is a JS function, or simply, an element in ReactJS.
We write codes for components, we then write how these components have to be arranged, how they should look, and how they must act. The component architecture is the basis of your UI. Therefore, learning how to write components in ReactJS is going to be one of the very first things in your React learning journey. In ReactJS, we compose a component, and then it is rendered using DOM tags. We can also split components as many times as we want. You would gradually learn about the myriad of functions and elements present in React that we can incorporate into our codes, as you learn to build your first ever components. Let us see an example of a component. This is a very simple component meant to render the words ‘Hello React-learner’ on the screen.
1
2
3
4
5
6
7
8
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
const root = ReactDOM.createRoot(document.getElementById('root'));
const element = <Welcome name="React-learner" />;
root.render(element);
As I have already mentioned, ReactJS makes writing and handling components much easier for us. Reusable components allow us to write and reuse components. This makes your entire code concise and simpler to navigate.
Since the launch of Hooks in React v16.8, things have gotten even better. Hooks, in simple terms, let you ‘hook onto’ a React function component and use it without having to write a class for it. This definitely makes things look a lot better for us as we can simply call on function components using the hooks, without actually writing the component. Additionally, for a beginner, it allows you to stay away from class components during your initial phase of learning so that you can focus on function components more. Function components are usually bulky, so I suggest that you practice them from the start.
Note that all hooks are labeled with the prefix ‘use’. Since we delved into hooks, let me talk to you about two very important hooks in ReactJS to kickstart your journey of learning how to use hooks.
useState
useState
is a nifty little hook that allows us to store state in a functional component. Consider this for example, const[name, setName] = useState('Sam Stardust');
Here, I stored the variable name in the state. Using setName, I can also change the name variable, say, from Sam Stardust to Luna Stardust.
Overall, useState helps organize complex states and also spares us from using ‘this’ every time we use a state.
useEffect
This hook allows us to run a code during separate parts of the component lifecycles. You are likely to call this hook during updating your component with prop change, calling APIs, or running a clean-up code. useEffect would let you do any of these separately on specific parts of a component lifecycle.
State and Props
We talked liberally about State and State functions in the previous section, but what is a State in ReactJS? A state in ReactJS stores synchronous variables. This means, that when you make changes in a state variable, the change is reflected throughout your code. Let us say, you want a component called UserDetails in your project that stores the names and ages of your users. Name and age of users are variable, so your state should look like this:
1
2
3
4
5
6
7
8
9
10
11
12
13
const App = () => {
const [isModalOpen, setIsModalOpen] = useState(false);
const [inputValue, setInputValue] = useState("hello React");
const [userList, setUserList] =useState([
{name: "Sam", age: 26},
{name: "Soham", age: 27},
{name: "AG", age: 34}
])
return(
// ...JSX
)
}
Props, in React, are arguments. The values of props are determined by you are stored. The word is derived from properties. They carry the properties of an HTML tag. This data is carried from components from their parents. They pass into functions or methods as input arguments.
Delving a little deeper
Everything that we talked about in the previous section, along with a bit of CSS knowledge, would be sufficient for you to build simple, one-page apps. You can try building your own to-do list, or calculator app at this point. However, there are things that you would inevitably require to build more complex apps on ReactJS. Let us go through these quickly.
React Router
In plain words, React Router does routing in React. What do we understand by routing here? Routing refers to navigating through the different pages in your app. If you need your user to be redirected to a contacts page from the home page, by the click of a button, then you need to create routing for that accordingly. Understanding how React Router works would enable you to use routing in your apps. From there, you can proceed to build simple CRUD applications and so on.
Webpack
Webpack is a module bundler for JS in React. They come with loaders that assist you in running particular tasks within your project. The primary function of webpack is to maintain the dependencies in your code in the form of static files. This spares you from doing it yourself. Webpack in ReactJS works under the hood and is often overlooked by rookie developers. Nevertheless, for a better grasp of ReactJS, it is advisable that you learn about webpack.
Server Rendering
Server rendering is a very popular feature of ReactJS which gives it a leading edge over other frameworks. This feature of React, along with virtual DOMs, makes our UIs highly responsive. Server rendering enables you to build components for your app in the server and then render them as HTML in the browser. It helps typing your UI to any sophisticated backend tech.
Redux
Redux helps you to maintain state across all components within your app. This is necessary especially when your app is complex and has numerous components. Redux stores all your states in a single source.
Tips to Remember
Understand the React Life Cycle
The React lifecycle depicts the phases through which a component in react goes. We can monitor and edit components during these phases. The component lifecycle can be said to have three main phases in react, mounting, updating, and unmounting. Mounting is the phase when a component is added to the DOM, it is then rendered, During updating, the state or props of a component can be updated. Lastly, during unmounting, the component is removed from the DOM. It is important to understand how the component lifecycle works in React to begging building apps in it.
Forget about Redux or context APIs - they are for complex apps
We are always bombarded with fancy words in tutorials and blogs about the coolest features and functions of React from the very beginning. It is important to know which to learn first, and what can come later. For example, you would not need Redux or webpack for building a simple app in your initial days. It is better to not get frazzled with them, learn the basics, and cross these bridges when they come.
Choose a way to style components and stick to it
ReactJS is famous for its flexibility. There are more style components in ReactJS than you would need. You are likely to stick to one or two till the end anyway. It is better to choose one style component and work rigorously on it instead of trying to work with all the style components for the sake of learning.
Build one component at a time
ReactJS allows us to segment our codes into components and see them as individual parts. It is better to take advantage of this fully. It is highly advisable that you practice building one component at a time, instead of juggling several components simultaneously.
You do not need server data already
Handing server data and APIs from the very beginning can simply add to the stress of learning something new, in this case, React. Ditch the server data, use fake data even. In the beginning, when you are creating simple apps and frontend pipelines of them, it is better to concentrate on the component architecture than have a headache about server data.
Focus on React
And not on Angular or Vue. As a frontend developer, it is possible that you might end up liking Angular over React. You can always shift to any framework of your choosing. However, while learning React, it is better to concentrate on this library only. The same goes for any other framework you might be trying to master. It would not be wise to try to learn all the frameworks simultaneously. It would confuse you and slow your learning pace. Also, as a professional frontend developer, you need to be good at any one of the frameworks anyway.
Enjoy ReactJS
And that is a wrap! I hope you enjoyed reading this and it helped you understand where to begin or how to proceed with learning ReactJS. ReactJS can be a very important addition to your arsenal as a frontend developer. At any rate, ReactJS fosters creativity and innovation at a heightened level. I hope you enjoy creating new programs, experimenting with them, and exploring all the exciting features of ReactJS. Happy coding!
Sam took the long path into the world of IT. A post-grad in Bioinformatics, she started coding to build better programs for protein sequencing. Currently, Sam actively writes blogs for 4 Way Technologies. She's always excited about all the new technologies and updates in software development. Sam also writes coding tutorials and beginners guides for, well, beginners.