最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • React-Router-Dom中文翻译 1:快速开始

    正文概述 掘金(前端切菜师)   2020-12-06   563

    快速开始

    要在Web App中开始使用React Router,您需要一个React Web App。如果您需要创建一个,我们建议您尝试create-react-app。这是一个非常流行的工具,可以实现和React Router的完美配合。

    首先,安装create-react-app并使用它创建一个新项目。

    npx create-react-app demo-app
    cd demo-app
    

    安装

    您可以使用公共包管理工具yarn或npm安装React Router。由于我们正在构建Web App,因此将在本教程中使用react-router-dom

    npm install react-router-dom
    

    接下来,将以下任一示例复制/粘贴到中src/App.js。

    示例1:基本路由

    在此示例中,路由器帮助我们处理了3个“页面”:Home、About、User。在点击不同的<Link>时,路由器将呈现匹配项<Route>,并以此来渲染React页面。

    注意:在<Link>内部,<Link>会创建一个带有href属性的<a>标签,因此使用键盘进行导航或屏幕阅读器的人仍然可以使用此应用。

    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>
    
            {/* <Switch>通过在其子<Route>中查找
                 渲染与当前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>;
    }
    

    示例二:嵌套路由

    此示例展示了嵌套路由的工作方式。路由/topics加载Topics组件,这将实现<Route>在通过path:id传入的值上进一步实现有条件的渲染。

    import React from "react";
    import {
      BrowserRouter as Router,
      Switch,
      Route,
      Link,
      useRouteMatch,
      useParams
    } from "react-router-dom";
    
    export default function App() {
      return (
        <Router>
          <div>
            <ul>
              <li>
                <Link to="/">Home</Link>
              </li>
              <li>
                <Link to="/about">About</Link>
              </li>
              <li>
                <Link to="/topics">Topics</Link>
              </li>
            </ul>
    
            <Switch>
              <Route path="/about">
                <About />
              </Route>
              <Route path="/topics">
                <Topics />
              </Route>
              <Route path="/">
                <Home />
              </Route>
            </Switch>
          </div>
        </Router>
      );
    }
    
    function Home() {
      return <h2>Home</h2>;
    }
    
    function About() {
      return <h2>About</h2>;
    }
    
    function Topics() {
      let match = useRouteMatch();
    
      return (
        <div>
          <h2>Topics</h2>
    
          <ul>
            <li>
              <Link to={`${match.url}/components`}>Components</Link>
            </li>
            <li>
              <Link to={`${match.url}/props-v-state`}>
                Props v. State
              </Link>
            </li>
          </ul>
    
          {/* Topics 页面拥有自己的<Switch>, 其中包含更多子路由,这些路由都将基于/topics这个路径下。
              你可以认为第二个<Route>在这里是作为所有topics子页面的index(索引)页面,或者在没有选择topic时需要渲染的页面
             */}
          <Switch>
            <Route path={`${match.path}/:topicId`}>
              <Topic />
            </Route>
            <Route path={match.path}>
              <h3>Please select a topic.</h3>
            </Route>
          </Switch>
        </div>
      );
    }
    
    function Topic() {
      let { topicId } = useParams();
      return <h3>Requested topic ID: {topicId}</h3>;
    }
    

    下一步

    希望这些示例使您对使用React Router创建Web应用程序有一定的启发和帮助。继续阅读来深入了解React Router中的主要组件!


    起源地下载网 » React-Router-Dom中文翻译 1:快速开始

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元