React.js is an open-source, component-based front end library responsible only for the view layer of an MVC web application. Its fundamental principle is to divide the user interface into composable components, as a clear way to promote a business-forward mindset and a strong concept of code reusability. More specifically, React has gained a lot of attention due to the following core characteristics:
- Reusable Components
React relies on reusable code snippets that reflect a particular part of the user interface. Each component has its own internal logic and decides how it should be rendered. This approach has some amazing results, e.g. your app has consistent look and feel and code re-use makes it easier to maintain and grow your codebase.
- High performance
Virtual DOM (short for Document Object Model) is the core reason why with React we can create fast and scalable web apps, even in realistic cases of high user interaction and view updates. In these real-life use cases, refreshing the whole DOM is often a performance bottleneck that needs particular attention. React tries to solve this problem by keeping DOM in memory (hence virtual DOM). Any view changes are first reflected to virtual DOM, then an efficient diff algorithm compares the previous and current states of the virtual DOM and calculates the minimum updates needed to apply these changes.
React makes it painless to create interactive UIs. Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes. Declarative views make your code more predictable and easier to debug.
- Fast learning curve
- React Native
It can be viewed as an extension of React’s logic to the area of mobile applications, e.g. android and iOS. The way to move ahead to React Native is pretty easy, as Reach supports a kind of “learn once write anywhere” mindset. Although Reach Native is somehow different from Reach itself, the architecture and principles are kept the same to alleviate an easy and smooth transition.
The above unique characteristics of React makes it extremely popular in job postings. The demand also follows this increasing trend, according to GitHub reports.
- This specific Code.Learn program lasts 3 weeks (2 Fridays, 3 Saturdays) with 32 hours of lectures and hands-on exercise on a real life project.
Key Objectives – Curriculum (High Level):
This program will present, explore and adequately cover with extended hands-on sessions & real-life case studies the following areas:
- Week 01
- SPA (single page applications)
- Package manager (npm)
- Presentational and Container components
- HOC / render props
- React Hooks
- React.lazy and Suspense
- React Portals
- Project setup & specs
- Week 02
- Compilers/Bundlers (Babel/Webpack)
- Actions and action creators
- Middleware (thunk)
- Week 03
- Testing react components (Jest – react testing library)
- React Router
- Project presentation by the Teams
The lessons can be carried out:
- Inside a physical classroom with an instructor,
- In an online environment as a virtual classroom, with live connection with the instructor through video conferencing; or lastly,
- A combination of both physical and online.
The method of teaching will depend on the current conditions, and also on the participants’ preferences.
Regarding online, the instructor provides the taught material through screen sharing, live broadcast, or by working on the cloud where attendees can see and interact with everything in real-time. Attendees themselves can seamlessly and actively participate and ask questions, as they would in a physical classroom. Additionally, they can collaborate in team projects and deliver assignments and hands-on projects that the instructor can see and provide feedback easily and without delays.
Computer scientists, software engineers and developers that want to boost their career as web developers (client side, server side, full stack) are welcome to participate to this code.learn program and unlock the full potentiality of the topics taught by upskilling their future career.