React part 3
React Router
To get started with React Router in a web app, you’ll need a React web app. If you need to create one, we recommend you try Create React App. It’s a popular tool that works really well with React Router.
First, install create-react-app and make a new project with it.
To get started with React Router in a web app, you’ll need a React web app. If you need to create one, we recommend you try Create React App. It’s a popular tool that works really well with React Router.
First, install create-react-app and make a new project with it.
Example
In this example we have 3 “pages” handled by the router: a home page, an about page, and a users page. As you click around on the different <Link>
s, the router renders the matching <Route>
.
Note: Behind the scenes a <Link>
renders an <a>
with a real href, so people using the keyboard for navigation or screen readers will still be able to use this app.
import React from "react";
import {
BrowserRouter as Router,
Switch,
Route,
Link
} from "react-router-dom";
export default function App() {
return (
<Router>
<div>
<nav>
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/about">About</Link>
</li>
<li>
<Link to="/users">Users</Link>
</li>
</ul>
</nav>
{/* A <Switch> looks through its children <Route>s and
renders the first one that matches the current URL. */}
<Switch>
<Route path="/about">
<About />
</Route>
<Route path="/users">
<Users />
</Route>
<Route path="/">
<Home />
</Route>
</Switch>
</div>
</Router>
);
}
function Home() {
return <h2>Home</h2>;
}
function About() {
return <h2>About</h2>;
}
function Users() {
return <h2>Users</h2>;
}
Styling and CSS
Can I use inline styles?
- Yes, see the docs on styling here.
Are inline styles bad?
- CSS classes are generally better for performance than inline styles.
What is CSS-in-JS?
- “CSS-in-JS” refers to a pattern where CSS is composed using JavaScript instead of defined in external files. Read a comparison of CSS-in-JS libraries here.
Note that this functionality is not a part of React, but provided by third-party libraries. React does not have an opinion about how styles are defined; if in doubt, a good starting point is to define your styles in a separate *.css file as usual and refer to them using className.
Can I do animations in React?
- React can be used to power animations. See React Transition Group and React Motion or React Spring, for example.