首页 > 其他分享 >React Router初识

React Router初识

时间:2022-10-14 15:02:30浏览次数:84  
标签:function react return React 初识 router Router


相关网址:

​官方地址​
​React Router 中文文档​
​React-Router 入门教程​
​简书:React Router教程​
​阮一峰教程​
​GitHub地址​

React Router是便于React开发单页应用进行路由管理的一个第三方库。它主要有以下几个部分组成:
<BrowserRouter> 、 <HashRouter>: 定义路由器,它们是两种不同的路由,选择一种即可
<Route> 、<Switch>: 定义路由
<Link>、<NavLink>、<Redirect>: 使用路由,进行跳转

大致知道了React Router的一个组成成分,接下来看看如何应用到项目中。
在创建好的React项目中引入react-router-dom

npm install react-router-dom
or
yarn add react-router-dom

那么接下来该如何使用呢?可以参照官网的快速开始​​https://reactrouter.com/web/guides/quick-start​​ 接下来做两个实例快速了解下React Router的使用方式。

示例一:

这是一个常规的导航切换的功能,当然你也可以改变成左右两栏的布局。
github: ​​​https://github.com/956159241/ReactStudyDemo/tree/master/react-study-demo/src/router-demo1​



React Router初识_react.js


import React from 'react';
import {BrowserRouter, Route, Link, Switch} from 'react-router-dom';

function Tab1() {
return (<div>tab1</div>);
}

function Tab2() {
return (<div>tab2</div>);
}

export default function RouterDemo1 () {
return (
<BrowserRouter>
<div className='links'>
<span style={{ margin:'5px'}}><Link to="/tab1">tab1</Link></span>
<span style={{ margin:'5px'}}><Link to="/tab2">tab2</Link></span>
</div>
<Switch>
<Route path='/tab1' component={Tab1} />
<Route path='/tab2' component={Tab2} />
<Route path='/' component={Tab1} />
</Switch>
</BrowserRouter>
);

}

示例二:
很多时候我们需要设置二级导航,可能需要传递参数。
github: ​​​https://github.com/956159241/ReactStudyDemo/tree/master/react-study-demo/src/router-demo2​



React Router初识_ecmascript_02



import React from "react";
import {
BrowserRouter as Router,
Switch,
Route,
Link,
useParams,
useRouteMatch
} from "react-router-dom";



export default function RouterDemo2() {
return (
<Router>
<div>
<ul>
<li><Link to="/">首页</Link></li>
<li><Link to="/itemlist">项目列表</Link></li>
</ul>
<Switch>
<Route exact path="/" component={Home} />
<Route path="/itemlist" component={ItemList} />
</Switch>
</div>
</Router>
);
}

function Home() {
return (
<div>
<h2>首页</h2>
</div>
);
}

function ItemList() {
let { path, url } = useRouteMatch();

return (
<div>
<h2>项目列表</h2>
<ul>
<li>
<Link to={`${url}/item1`}>项目一</Link>
</li>
<li>
<Link to={`${url}/item2`}>项目二</Link>
</li>
<li>
<Link to={`${url}/item3`}>项目三</Link>
</li>
</ul>

<Switch>
<Route exact path={path}>
<h3>选择一个项目</h3>
</Route>
<Route path={`${path}/:itemId`} component={Item} />
</Switch>
</div>
);
}

function Item() {
let { itemId } = useParams();
return (
<div>
<h3>{itemId}</h3>
</div>
);
}

标签:function,react,return,React,初识,router,Router
From: https://blog.51cto.com/u_11071029/5756603

相关文章

  • 鸿蒙OS初识
    学习官网:https://www.harmonyos.com/cn/develop准备注册,安装软件(node:12+,DevEcoStudio):​​​https://developer.harmonyos.com/cn/docs/documentation/doc-guides/softw......
  • react 方法内返回dom的方法
    functionMyComponent(){return(<React.Fragment>Sometext.<h2>Aheading</h2>Moretext.<h2>Anotherheading</h2>Evenm......
  • React专题(1)-环境配置
    此节把开发react需要的所有可能的环境都先描述一下,以方便后面的开发。在react开发中主要依赖的是node,主要需要配置以下内容:nvm:需要单独安装,主要是对项目使用的node.js解释器......
  • 前端成神之路-CSS初识
    第01阶段.前端基础.CSS初识CSS层叠样式表学习目标理解css的目的作用css的三种引入方式应用css三种引用方式的书写通过样式规则给标签添加简单的样式1.HTML的局限性说起HTML,......
  • 初识SpringBoot
    什么是SpringSpring是一个开源框架,2003年兴起的轻量级的Java开发框架。作者:RodJohnsonSpring是为解决企业级应用开发的复杂性而创建的,简化开发。Spring如何简化Java......
  • React组件之间的通信方式总结(下)
    一、写一个时钟用react写一个每秒都可以更新一次的时钟importReactfrom'react'importReactDOMfrom'react-dom'functiontick(){letele=<h1>{new......
  • React循环DOM时为什么需要添加key
    一、React渲染流程和更新流程react渲染流程:jsx->虚拟dom->真实domreact更新流程:props/state改变->render函数重新执行->生成新的虚拟dom树->新旧虚拟dom树进......
  • 实现简单的vue-router
    1.使用vue-cli创建一个配置Router,且是history模式的项目,可以看到使用vue-router的相关代码://route-demo/src/router/index.jsimportVuefrom'vue'importVueRouterf......
  • 初识设计模式 - 迭代器模式
    简介迭代器设计模式(IteratorDesignPattern),也叫作游标设计模式(CursorDesignPattern)。迭代器模式将集合对象的遍历操作从集合类中拆分出来,放到迭代器类中,让两者的职责......
  • 初识babel
    Babel编译安装Node.js,初始化项目yarninit-y安装babel-cliyarnadd@babel/core@babel/cli@babel/preset-env--devyarnadd@babel/polyfill添加执行脚......