- Motivation
- Why this project?
- Project Description:
- Screenshot and link reference
- How to Install and Run the Project?
- The learning Process
- Deepening the understanding of React Router DOM: enhance the skills in React Router DOM, particularly focusing on dynamic routing capabilities.
- Exploring client-side routing: Aimed to delve into the intricacies of client-side routing, also referred to as dynamic routing, to better comprehend its implementation and benefits.
- Mastering single-page application development: Keen on mastering the creation of single-page web application that enable seamless navigation without the need for page refreshes(yes, not a single refresh of any of the pages navigated through).
- Purpose of the Project: The primary objective of the project was educational. Rather than simply studying React Router DOM theoretically, the person decided to gain practical experience by building a project.
- Learning by Doing: Instead of just reading documentation or tutorials, the individual chose to learn through hands-on experience. This approach often leads to better understanding and retention of concepts, as it involves actively engaging with the technology.
- Focus on React Router DOM: React Router DOM is a library for React that enables navigation and routing in single-page applications. By concentrating on this specific library, the person aimed to become proficient in its usage and understand its various features thoroughly.
- Thorough Understanding: The intention was not just to grasp the basics but to delve deeply into the library's concepts and functionality. This implies exploring advanced features, understanding best practices, and perhaps even encountering and solving real-world challenges related to client-side routing.
- Enhancing Client-Side Routing: The project aimed to improve the person's skills in managing client-side routing. Client-side routing is crucial in single-page applications as it allows for smoother navigation without the need to reload the entire page. By mastering React Router DOM, the person sought to enhance their ability to create dynamic and responsive web applications.
This project is ensuring to practically learn the React JS with the React Router 6.4.3 Javascript Library. React Router is a JavaScript library that helps developers create single-page applications that are responsive and have a dynamic user interface. React Router as a JavaScript library enables the client side routing. This wouldn't make a sense without knowing the difference between the SPA and MPA. A single page application loads an entire html document and dynamically updates the content on the page upon the requests being made. A MPA loads a new page upon every request being made on it.
React Router DOM serves as a solution for handling navigation and routing complexities within React applications. It empowers developers to establish dynamic routes on the client side, facilitating smooth transitions between various components or pages without requiring the entire page to reload or refresh. This capability enhances the user experience by providing seamless navigation within the application.
Warning: Vite enforces using jsx syntax inside jsx/tsx files, so it will complain about that. Solution: rename .js
files to .jsx
:)
Quick start:
$ npm install
$ npm start
Head over to https://vitejs.dev/ to learn more about using vite
- Project Bootstrap: Started by initializing the VanLife project.
- Initial Deployment: Deployed the project to Netlify.
- Setting Up Mirage JS Server: Introduced Mirage JS Server for mock data.
- Challenges with Vans Page: Addressed challenges related to setting up the Vans Page.
- Understanding Route Parameters: Explored the concept of route parameters across multiple parts.
- Introduction to Nested Routes: Learned about nested routes and their implementation.
- Fixing Navigation Bar with Layout Routes: Implemented layout routes to fix navigation bar issues.
- Building Host Pages: Bootstraped host pages and nested routes for hosts.
- Handling Relative Paths and Index Routes: Managed relative paths and index routes for smoother navigation.
- Utilizing NavLink: Explored NavLink for active link styling and navigation.
- Adding Search Parameters: Introduced search parameters and their manipulation.
- Utilizing Link State and Location Hooks: Employed link state and location hooks for dynamic rendering.
- Implementing 404 Page: Addressed 404 page handling for better user experience.
- Protected Routes Setup: Initiated setup for protected routes and authentication.
- Integration with Cloud Firestore: Integrated Cloud Firestore for data storage.
- Refactoring Firestore Code: Refactored code related to Cloud Firestore setup.