5分钟了解 React Router
:)
React Router 是 React 的标准路由库。“React Router 可让您的 UI 与 URL 保持同步。它拥有简洁的 API,并内置了诸如延迟代码加载、动态路由匹配和位置转换处理等强大功能。阅读本文后,您将成为 React Router 的大师。那就让我们开始吧。”
如何使用它?
使用前,你需要安装 react-router-dom。打开命令行并安装。
npm i react-router-dom
安装完成后,现在我们需要导入一些东西。
import { BrowserRouter, Switch, Route } from 'react-router-dom'
导入后,我们需要用浏览器路由器包装整个应用,或者在你想使用路由器的地方,用它包装整个应用。现在在浏览器路由器中添加这个 switch 元素。
import React from "react";
import { BrowserRouter, Switch, Route } from "react-router-dom";
const App = () => {
  return (
    <>
      <BrowserRouter>
        <Switch>
          <Route />
        </Switch>
      </BrowserRouter>
    </>
  );
};
export default App;
}
现在我们可以创建路线。
import React from "react";
import { BrowserRouter, Switch, Route } from "react-router-dom";
const App = () => {
  return (
    <>
      <BrowserRouter>
        <Switch>
          <Route
            path="/"
            exact
            component={() => {
              return (
                <>
                  <h1>Hello I am the home page</h1>
                </>
              );
            }}
          />
        </Switch>
      </BrowserRouter>
    </>
  );
};
export default App;
正如您在这段代码中看到的,我创建了一个用于主页的路由,因为我们指定了路径“/”。然后,如果路径是“/”,那么它应该渲染什么内容呢?我已经在那里创建了一个组件。您也可以创建一个单独的组件,然后导入它,然后将其放入“component={here}”中。
让我们创建更多路线。
import React from "react";
import { BrowserRouter, Switch, Route, Router } from "react-router-dom";
const App = () => {
  return (
    <>
      <BrowserRouter>
        <Switch>
          <Route
            path="/"
            exact
            component={() => {
              return (
                <>
                  <h1>Hello I am the home page</h1>
                </>
              );
            }}
          />
          <Route
            path="/about"
            component={() => {
              return (
                <>
                  <h1>I am from the about page.</h1>
                </>
              );
            }}
          />
          <Route
            path="/blog"
            component={() => {
              return (
                <>
                  <h1>I am from the blog page.</h1>
                </>
              );
            }}
          />
        </Switch>
      </BrowserRouter>
    </>
  );
};
export default App;
现在我已经创建了多条路由。现在我们只能在屏幕上看到主页。我们怎么才能看到其他页面呢?很简单!只需在页面 URL 后输入“about”,即可重定向到“about”页面。那么,为什么输入“/about”后会重定向到“about”页面呢?因为我们创建路由时指定了“about”路径。所以,当有人输入这个路径时,他/她都会被重定向到那里。所以,现在这还不算什么酷炫的东西 :(。现在我们将看到如何使用 React Router 创建一个很棒的导航。而且速度会非常快。所以,让我们创建一个“Nav”组件。:)
import React from "react";
import { Link } from "react-router-dom";
const Nav = () => {
  return (
    <>
      <Link to="/" exact>
        Home
      </Link>
      <Link to="/about" exact>
        About
      </Link>
      <Link to="/blog" exact>
        Blog
      </Link>
    </>
  );
};
export default Nav;
这就是我们的导航组件。这里没什么特别的。我只是从 react-router-dom 导入了“Link”元素。它接受一个 prop“to”,用于指定重定向到哪里。现在,让我们把它渲染到我们的 app 组件下。
import React from "react";
import { BrowserRouter, Switch, Route } from "react-router-dom";
import Nav from "./Nav";
const App = () => {
  return (
    <>
      <Nav />
      <BrowserRouter>
        <Switch>
          <Route
            path="/"
            exact
            component={() => {
              return (
                <>
                  <h1>Hello I am the home page</h1>
                </>
              );
            }}
          />
          <Route
            path="/about"
            component={() => {
              return (
                <>
                  <h1>I am from the about page.</h1>
                </>
              );
            }}
          />
          <Route
            path="/blog"
            component={() => {
              return (
                <>
                  <h1>I am from the blog page.</h1>
                </>
              );
            }}
          />
        </Switch>
      </BrowserRouter>
    </>
  );
};
export default App;
现在我正在 app.js 中渲染 Nav 组件,但它显示错误,为什么!!!哈哈,因为我们在 Nav 中使用了 Link 元素,所以我们必须将 Nav 放在 BrowserRouter 下方,因为我们把这个路由器的路径放在了 Nav 中。放在 BrowserRouter 下方后,它应该就能正常工作了。:)
import React from "react";
import { BrowserRouter, Switch, Route } from "react-router-dom";
import Nav from "./Nav";
const App = () => {
  return (
    <>
      <BrowserRouter>
        <Nav />
        <Switch>
          <Route
            path="/"
            exact
            component={() => {
              return (
                <>
                  <h1>Hello I am the home page</h1>
                </>
              );
            }}
          />
          <Route
            path="/about"
            component={() => {
              return (
                <>
                  <h1>I am from the about page.</h1>
                </>
              );
            }}
          />
          <Route
            path="/blog"
            component={() => {
              return (
                <>
                  <h1>I am from the blog page.</h1>
                </>
              );
            }}
          />
        </Switch>
      </BrowserRouter>
    </>
  );
};
export default App;
好了,现在输出完美了 :)。不过最后还有个问题:我们如何知道现在在哪个页面?所以在这种情况下,我们应该使用 NavLink 而不是 Link,这样我们就会得到另一个名为“activeClassName”的额外属性。我们来做吧 :)。
import React from "react";
import { NavLink } from "react-router-dom";
const Nav = () => {
  return (
    <>
      <NavLink activeClassName="active" to="/" exact>
        Home
      </NavLink>
      <NavLink activeClassName="active" to="/about" exact>
        About
      </NavLink>
      <NavLink activeClassName="active" to="/blog" exact>
        Blog
      </NavLink>
    </>
  );
};
export default Nav;
我添加了一个活动类。它会在页面打开/加载时设置样式。所以,您可以根据自己的喜好来设置样式。
在路由中,我们使用 component 属性进行渲染。但我们还有另一个属性,那就是 render 属性。那么它的作用是什么呢?它会在页面加载完成后再次创建整个组件。
关于 React Router 的介绍就到这里,希望你喜欢。感谢阅读本文。如果你对我的文章有任何问题,请告诉我。记得关注我,以便收到所有类似的信息文章。
 后端开发教程 - Java、Spring Boot 实战 - msg200.com
            后端开发教程 - Java、Spring Boot 实战 - msg200.com