ReactJS-The Beginner Master Class
  • React In the Beginning
    • Lesson 1 - Demo: Build a Simple React App - Fast
    • Lesson 2 - HTML Review
    • Lesson 3 - CSS Review
    • Lesson 4 - Modern JavaScript (JSX) Patterns
    • Lesson 5 - Set up Dev Environment
    • Hands-on Practice
  • React Fundamentals
    • Lesson 1 - Understanding Old vs New Way of Building Web Apps - SPAs
    • Lesson 2 - Motivation for Using React as the Solution to Vanilla JS
    • Lesson 3 - What is ReactJS - How it Works
    • React Code Along from Scratch
    • Lesson 4 - Create and Run a React Project with Vite - Full Overview
    • Lesson 5 - Create Hook by State Management in React
    • Lesson 6 - React Project File and Folder Walkthrough
    • Lesson 7 - JSX and How React Treats the DOM & JSX Compilation(by Babeljs) - Overview
    • Lesson 8 - Understanding the Main Files - App.jsx and main.jsx
    • Lesson 9 - Props and One-Way Data Flow - Overview
    • Lesson 10 - Google Bookshelf App - Ver 1.0
    • Hands-on Practice I
    • Hands-on Practice II
  • React State and Styling
    • Lesson 1 - Pulling Book Data from a Different Data File
    • Lesson 2 - Overview of How State Works in React
    • Lesson 3 - RandomQuote App
    • Lesson 4 - Lifting State Up - React Pattern Overview
    • Hands-On - Simple Counter
  • Forms and Interactivity - Grocery List App
    • Lesson 1 - Setup a Simple Form and Input
    • Lesson 2 - Build Form Profile App Using Multi-input Form Data
    • Hands-on : Build a Grocery List App
  • Connecting to the Backend - Consuming APIs - UseEffect Hook
    • Lesson 1 - Connecting to the Back End - Understanding Side Effects, Hooks and useEffect - Overview
    • Lesson 2 - Fetching Data from the Backend the Right Way with useEffect Hook
    • Lesson 3 - Setting Up Loading State
    • Hands-on :Use Dependency Array and Adding Values that Control Side Effects
  • Solo Project 1
  • RESTful APIs :Build a BookSearch App -Ver 2.0
    • Lesson 1: Build and test RESTful APIs with Postman
    • Lesson 2 - BookShelf App Structure
    • Lesson 3 - Create NavBar.jsx Component
    • Lesson 4 - Create Footer Component
    • Lesson 5 - Create BookList.jsx Component
    • Lesson 6 - Create BookCard.jsx Component
    • Lesson 7 - Creating Custom Hooks - useBooks and api-client
    • Lesson 8 - Controlling Network Activities in React with AbortController
    • Lesson 9 - Show Book Details in a Modal - Working
    • Lesson 10 - Bookshelf App Summary
  • Multi-Page Applications (MPAs)
    • Build a Multi-Page React Application
    • Multi-Page React Application
    • Hands-on Practice
  • Backend Frameworks-NEXT.JS
    • Migrating from React to Next.js
    • Lesson 1: Key Concepts of NodeJS and Express for Backend Web Development
    • Lesson 2: How to set up a new Next.js project
    • Lesson 3: How to create Layouts and Pages
    • Hands-on Practice 1
    • Hands on Practice 2
      • New Project & Folder Structure
      • File-Based Routing
      • Server vs Client Components & Router Hooks
      • Start On The Navbar
      • Navbar Links, Dropdowns & React Icons
      • Active Links & Conditional Rendering
      • Homepage Components
      • Properties Page
      • Property Card Dynamic Data
      • Home Property Listings
      • Custom Not Found & Loading Pages
  • Git and GitHubs
    • Git Installation
    • Git Commands
    • GitHub Repository
    • Hands-on Practice
  • Database in Application
    • React Supabase CRUD
    • Hands-on: Note Taking App
  • NoSQL Database
    • Installing MongoDB Community Edition
    • System Env Path Setting
    • How to use MongoDB Shell
    • How to Connect and Use Mongosh in VS Code via MongoDB Extension
    • MongoDB Guide
  • Solo Project 2
  • Deployment and Web Hosting
    • Lesson 1. React+Vite+TS+Shadcn Project
    • Lesson 2. Deploying a React Vite App to Vercel from Vercel CLI
    • Lesson 3 Connecting to GitHub Repo and Automate Deployment
  • Solo Project 3
  • Final Term Project
    • Level 1 Team Project
    • Level 1 Team Project
    • Level 1 Team Project
    • Level 1 Team Project
    • Level 2 Team Project
    • Level 2 Team Project
    • Level 3 Team Project
    • Level 3 Team Project
Powered by GitBook
On this page
  1. Multi-Page Applications (MPAs)

Build a Multi-Page React Application

Introduction to MPAs (15 minutes)

  • What are MPAs? Multi-Page Applications are web applications that consist of multiple distinct pages. Each page typically has its own URL and is loaded separately from the server. This contrasts with Single-Page Applications (SPAs) where all content is loaded on a single page and dynamically updated.

  • Characteristics of MPAs:

    • Multiple HTML pages.

    • Navigation via links between pages.

    • Full page reloads on navigation.

    • Server-side rendering is common.

  • Examples of MPAs: Traditional websites, e-commerce platforms, blogs (often older implementations).

  • Advantages of MPAs:

    • SEO-friendly: Each page can be optimized for specific keywords, improving search engine visibility.

    • Simpler initial load: Smaller page sizes can lead to faster initial load times, especially important for content-heavy sites.

    • Easier to develop (historically): The traditional web development model aligns well with MPAs.

  • Disadvantages of MPAs:

    • Slower navigation: Full page reloads can create a less fluid user experience compared to SPAs.

    • More complex development (in some ways): Managing data and state across multiple pages can be more challenging. Requires more server-side logic.

    • Increased server load: Each page request hits the server.

MPA Architecture and Technologies (30 minutes)

  • Traditional Approach (Server-Side Rendering):

    • The server handles routing and rendering HTML for each page.

    • Technologies: Server-side languages (e.g., Python, PHP, Java, Node.js), templating engines (e.g., Jinja2, EJS), databases.

  • Modern Approach (Client-Side Routing with Frameworks):

    • While technically still MPAs because of separate HTML files, some frameworks provide client-side routing to enhance the user experience. They minimize full page reloads for certain navigations.

    • Technologies: Modern JavaScript frameworks (e.g., React with React Router, Vue.js with Vue Router), build tools (e.g., Webpack).

  • Hybrid Approach: Combining server-side rendering for initial load and SEO with client-side routing for smoother navigation within sections of the application.

MPA Development Workflow (30 minutes)

  • Planning: Define the structure of your application, the different pages, and how they will be linked. Consider user flows and information architecture.

  • Design: Create wireframes and mockups to visualize the layout and user interface of each page.

  • Development: Implement the front-end (HTML, CSS, JavaScript) and back-end (server-side logic, database interaction) of each page.

  • Testing: Thoroughly test each page and the navigation between them to ensure functionality and usability.

  • Deployment: Deploy the application to a web server.

MPAs vs. SPAs (20 minutes)

  • Key Differences: Discuss the core differences in architecture, navigation, and user experience.

  • When to choose MPAs: SEO-critical applications, large content-heavy websites, situations where initial load time is paramount, simpler projects where the complexity of an SPA might be overkill.

  • When to choose SPAs: Applications requiring a highly interactive and dynamic user experience, dashboards, complex web applications where data needs to be updated frequently without page reloads.

Advanced MPA Concepts (25 minutes)

  • State Management: Discuss how to manage data and state across multiple pages. Techniques include server-side sessions, URL parameters, local storage (with limitations), and for enhanced MPAs, client-side state management libraries (if using a framework).

  • Code Organization: Emphasize the importance of well-structured code, especially in larger MPAs. Modularization and separation of concerns are crucial.

  • Performance Optimization: Strategies for optimizing MPA performance, such as caching, image optimization, and minimizing HTTP requests.

Q&A (10 minutes)

PreviousMulti-Page Applications (MPAs)NextMulti-Page React Application

Last updated 4 months ago