Book Image

Full-Stack React Projects

By : Shama Hoque
Book Image

Full-Stack React Projects

By: Shama Hoque

Overview of this book

The benefits of using a full JavaScript stack for web development are undeniable, especially when robust and widely adopted technologies such as React, Node, and Express and are available. Combining the power of React with industry-tested, server-side technologies, such as Node, Express, and MongoDB, creates a diverse array of possibilities when developing real-world web applications. This book guides you through preparing the development environment for MERN stack-based web development, to creating a basic skeleton application and extending it to build four different web applications. These applications include a social media, an online marketplace, a media streaming, and a web-based game application with virtual reality features. While learning to set up the stack and developing a diverse range of applications with this book, you will grasp the inner workings of the MERN stack, extend its capabilities for complex features, and gain actionable knowledge of how to prepare MERN-based applications to meet the growing demands of real-world web applications.
Table of Contents (19 chapters)
Title Page
Copyright and Credits
Packt Upsell
Contributors
Preface
Index

MERN stack


MongoDB, Express, React, and Node are used in tandem to build web applications and make up the MERN stack. In this lineup, Node and Express bind the web backend together, MongoDB serves as the NoSQL database, and React makes the frontend that the user sees and interacts with.

All four of these technologies are free, open-source, cross-platform, and JavaScript-based, with extensive community and industry support. Each technology has a unique set of attributes, which when integrated together make a simple but effective full JavaScript stack for web development.

Node

Node was developed as a JavaScript runtime environment built on Chrome's V8 JavaScript engine. Node made it possible to start using JavaScript on the server-side to build a variety of tools and applications beyond previous use cases that were limited to within a browser.

Node has an event-driven architecture capable of asynchronous, non-blocking I/O. Its unique non-blocking I/O model eliminates the waiting approach to serving requests. This allows building scalable and lightweight real-time web applications that can efficiently handle many requests.

Node's default package management system, the Node package manager or npm, comes bundled with the Node installation. Npm gives access to hundreds of thousands of reusable Node packages built by developers all over the world and boasts that it is currently the largest ecosystem of open source libraries in the world.

Note

Learn more about Node at https://nodejs.org/en/ and browse through available npm modules at https://www.npmjs.com/.

Express

Express is a basic framework for building web applications and APIs with a Node server. It provides a simple layer of fundamental web application features that complements Node.

In any web application developed with Node, Express can be used as a routing and middleware web framework that has minimal functionality of its own—an Express application is essentially a series of middleware function calls.

Note

Middleware functions are functions that have access to the HTTP request and response objects, and also the next middleware function in the web application's request-response cycle.

It is possible to insert almost any compatible middleware of your choice into the request handling chain, in almost any order, making Express very flexible to work with.

Note

Find out what is possible with Express.js at expressjs.com.

MongoDB

MongoDB is a top choice when deciding on a NoSQL database for any application. It is a document-oriented database that stores data in flexible, JSON-like documents. This means fields can vary from document to document and data models can evolve over time in response to changing application requirements.

Applications that place a high priority on availability and scalability benefit from MongoDB's distributed architecture features. It comes with built-in support for high availability, horizontal scaling using sharding, and multi-data center scalability across geographic distributions.

MongoDB has an expressive query language, enabling ad hoc queries, indexing for fast lookups, and real-time aggregation that provides powerful ways to access and analyze data while maintaining performance even when data size grows exponentially.

Note

Explore MongoDB features and services at https://www.mongodb.com/.

React

React is a declarative and component-based JavaScript library for building user interfaces. Its declarative and modular nature makes it easy for developers to create and maintain reusable, interactive, and complex user interfaces.

Large applications that display a lot of changing data can be fast and responsive if built with React, as it takes care of efficiently updating and rendering just the right UI components when specific data changes. React does this efficient rendering with its notable implementation of a virtual DOM, setting React apart from other web UI libraries that handle page updates with expensive manipulations directly in the browser's DOM.

Developing user interfaces using React also forces frontend programmers to write well-reasoned and modular code that is reusable, easier to debug, test, and extend.

Note

Check out resources on React at https://reactjs.org/.

Since all four technologies are JavaScript-based, these are inherently optimized for integration. However, how these are actually put together in practice to form the MERN stack can vary based on application requirements and developer preferences, making MERN customizable and extensible to specific needs.