GDG Logo

Game Dev with React Workshop

App.js

The `App.js` file serves as the entry point of the application. It sets up the global state using `jotai`, configures routes using `react-router-dom`, and renders the main components of the app.

1. Import Statements


        import { Provider } from 'jotai';
        import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
        import LandingPage from './components/LandingPage';
        import GameBoard from './components/GameBoard';
        import './styles/App.css';
      

Imports the required libraries and components: - `Provider` from `jotai` wraps the app to provide state management. - `Router`, `Routes`, and `Route` from `react-router-dom` handle navigation. - `LandingPage` and `GameBoard` are the main components of the app. - The `App.css` file contains global styles for the app.

2. Functional Component Declaration

function App() { ... }

The `App` component serves as the root of the application. It uses React Router for navigation and `jotai` for state management.

3. Jotai Provider


        <Provider>
          ...
        </Provider>
      

The `Provider` component from `jotai` wraps the entire application. This enables state management using atoms throughout the app.

4. Router Setup


        <Router>
          <Routes>
            <Route path="/" element={<LandingPage />} /> 
            <Route path="/game" element={<GameBoard />} />
          </Routes>
        </Router>
      

The `Router` component wraps the app's routes to handle navigation. Inside it: - `Routes` contains all the defined routes. - The `/` route renders the `LandingPage` component. - The `/game` route renders the `GameBoard` component.

5. Export Statement

export default App;

Exports the `App` component so it can be rendered by `index.js` as the entry point of the application.