react router源码(react 可以遍历输出 Route 吗)

2024-07-14 04:23:37 13

react router源码(react 可以遍历输出 Route 吗)

本文目录

react 可以遍历输出 Route 吗

1:可以map输入,但是我不明白你想要用到哪里。

我写了一个例子。你可以看下:网页链接

import React from "react";import ReactDOM from "react-dom";import { BrowserRouter as Router, Route, Link } from "react-router-dom";import "./styles.css";var routers = ;function ParamsExample() {return (《Router》《div》《h3》Accounts《/h3》《ul》《li》《Link to="/a/a-router"》Netflix《/Link》《/li》《li》《Link to="/b/b-router"》Zillow Group《/Link》《/li》《li》《Link to="/c/c-router"》Yahoo《/Link》《/li》《/ul》{routers.map(item =》 (《Route path={`/${item.link}/:id`} component={Child} key={item.Link} /》))}《/div》《/Router》);}function Child({ match }) {return (《div》《h3》ID: {match.params.id}《/h3》《/div》);}function ComponentWithRegex({ match }) {return (《div》《h3》Only asc/desc are allowed: {match.params.direction}《/h3》《/div》);}function App() {return (《Router》《div className="App"》《h1》Hello CodeSandbox《/h1》《h3》Start editing to see some magic happen!《/h3》《ParamsExample /》《/div》《/Router》);}const rootElement = document.getElementById("root");ReactDOM.render(《App /》, rootElement);

为什么react-router中的link用不了

其实例子里的代码已经很老了,React Router 的 API 也发生了很多变化。因此今天抽出一晚上的时间,再以最新的 React Router 稳定版(截止 2015年08月18日21:23:40 为 v0.13.3 版,与 React 版本号一致)为基础讲讲如何使用 React Router。阅读本文需要你有一定的 ReactJS 基础,如果你正在寻找 ReactJS 中文入门教程,推荐我参与翻译的 React - 引领未来的用户界面开发框架 一书。快速上手一个最基本的页面,菜单有「图书」和「电影」两个菜单项,点击「图书」显示图书列表(链接变为/books),点击「电影」显示电影列表(链接变为/movies)。Demo说实话,这个例子并不简单。下面逐步分析一下用到的代码和它们分别是干什么的。var Router = ReactRouter; // 由于是html直接引用的库,所以 ReactRouter 是以全局变量的形式挂在 window 上var Route = ReactRouter.Route;var RouteHandler = ReactRouter.RouteHandler;var Link = ReactRouter.Link;var StateMixin = ReactRouter.State;由于 Demo 需要直接从网页上引用 React 和 React Router,因此它们都被挂在了 window 对象上(现在但凡有点追求的前端都上 webpack 了,但是例子的话大家就将就着看吧)。这几行就是获取 ReactRouter 提供的几个组件和 mixin。接下来声明了 4 个组件,都是最基本的只有 render 方法的 React 组件,分别是: Movies 电影列表 、 Movie 电影详情 、 Books 图书列表 、 Book 图书详情 。关于组件唯一需要说明的是用到了 ReactRouter 提供的 State 这个 mixin,主要功能就是让组件能够通过 this.getParams() 或 this.getQuery() 等方法获取到当前路由的各种值或参数。然后是应用的入口,也是我们渲染菜单的地方:// 应用入口var App = React.createClass({render: function() {return (《div className="app"》《nav》《Link to="movies"》电影《/Link》《Link to="books"》图书《/Link》《/nav》《section》《RouteHandler /》《/section》《/div》);}});这里用到了两个 ReactRouter 提供的组件: Link 和 RouteHandler 。***隐藏网址***此外,Link 组件还有一个小特点,就是如果这个 Link 组件指向的路由被激活的话,组件会自动添加一个值为 active 的 className,方便你对当前激活的菜单项设置不同的样式(注意 demo 中红色的菜单项)。而 RouteHandler 组件是 ReactRouter 的核心组件之一,它代表着当前路由匹配到的 React 组件。假设当前的路由为 /books ,那么 App 这个组件里的 RouteHandler 其实就是 Books 组件。那么这个关系是怎么得来的呢?就要看下面定义的页面路由了。// 定义页面上的路由var routes = (《Route handler={App}》《Route name="movies" handler={Movies} /》《Route name="movie" path="/movie/:id" handler={Movie} /》《Route name="books" handler={Books} /》《Route name="book" path="/book/:id" handler={Book} /》《/Route》);这里又出现了另外一个 ReactRouter 提供的组件 Route ,这个组件就是定义整个页面路由的基础,可以嵌套。Route 接受的 props 包括 name、path、handler 等等。其中 name 就是上文提到的路由名称,可以通过 《Link to="路由的名称"》 来生成一个跳转到该路由的链接。path 指明的是当前路由对应的 url,如果不指定,那么默认就是 name 对应的值;如果 name 也不指定,那默认是 / ,即根目录。另外 path 还支持指定 params(上文有提到),就是上面的例子中 : 及后面跟着的名称。params 和 query 的区别在于,params 定义的是「路由」中的参数,比如 /movies/:id ,params 为 id;而 query 是 「URL」中的参数,是跟在 URL 中「?」后面的。定义路由时一般不考虑也不能限制 query 会是什么。比如 《Route name="movies" handler={Movie} /》 就指明了一条指向 /movies 的路由,当该路由激活时,调用 Movies 这个组件进行渲染。接下来就是最后一步,根据上面定义的路由判断出当前该渲染哪个组件,并将其渲染到 DOM 中。// 将匹配的路由渲染到 DOM 中Router.run(routes, Router.HashLocation, function(Root){React.render(《Root /》, document.body);});Router 即 ReactRouter,run 方法接受 2 - 3个参数,其中第一个参数必填,即我们指定的路由规则。第二个参数选填,即路由的实现方式, Router.HashLocation 指明了当前页面使用 hash 变化来实现路由,反映在浏览器的地址栏中就是类似 xxx.com/#/movies 这样的地址。使用这种 Location 的好处是兼容 IE 8,如果你的应用不需要兼容 IE 8,可以使用更高级的 Router.HistoryLocation 。最后一个参数是一个回调函数,函数的第一个参数是 ReactRouter 判断出的当前路由中需要渲染的根节点组件,在这里就是 《App /》 这个组件(虽然名字叫做 Root,但在本例中 Root 指的就是 App)。

react router源码(react 可以遍历输出 Route 吗)

本文编辑:admin

本文相关文章:


react router源码(为什么react-router中的link用不了)

react router源码(为什么react-router中的link用不了)

本文目录为什么react-router中的link用不了react 可以遍历输出 Route 吗为什么react-router中的link用不了其实例子里的代码已经很老了,React Router 的 API 也发生了很多变化。因此今天抽出

2024年7月16日 22:42

更多文章:


jquery发送ajax(jquery怎么用ajax发送一个请求,让action取到!)

jquery发送ajax(jquery怎么用ajax发送一个请求,让action取到!)

本文目录jquery怎么用ajax发送一个请求,让action取到!jquery ajax怎么使用用jquery发送ajax请求报:TypeError: $.ajax is not a function错误!!!jquery发送ajax请求

2024年7月4日 14:34

pg数据库和oracle哪个好(数据库有哪些)

pg数据库和oracle哪个好(数据库有哪些)

本文目录数据库有哪些为什么大部分的数据库系统仍然要用oracle数据分析师用哪个数据库比较好Oracle数据库开发和Android开发技术相比哪个前景更好为什么使用Oracle数据库的项目越来越少如果给你机会重新选择数据库,你最希望用哪个数

2024年7月3日 13:32

createprocess(C语言中的createprocess()函数参数是什么)

createprocess(C语言中的createprocess()函数参数是什么)

本文目录C语言中的createprocess()函数参数是什么createprocess失败 代码2 怎么解决运行文件createprocess失败,显示错误码,该如何解决用createprocess函数创建进程的意义是什么怎样用creat

2024年7月22日 14:59

python mkdir(Python其实很简单 第十六章 目录管理)

python mkdir(Python其实很简单 第十六章 目录管理)

各位老铁们,大家好,今天由我来为大家分享python mkdir,以及Python其实很简单 第十六章 目录管理的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始

2024年8月9日 23:45

ajaxform表单提交(ajax怎么提交整个form表单)

ajaxform表单提交(ajax怎么提交整个form表单)

本文目录ajax怎么提交整个form表单ajax提交form表单,到底怎么做form 表单提交里边能用ajax提交吗ajaxform怎么带参数提交ajax怎么提交整个form表单$.fn.SetWebControls = function

2024年7月4日 19:07

div+css网页布局代码(div+css如何做页面的一行两列布局)

div+css网页布局代码(div+css如何做页面的一行两列布局)

大家好,如果您还对div+css网页布局代码不太了解,没有关系,今天就由本站为大家分享div+css网页布局代码的知识,包括div+css如何做页面的一行两列布局的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录di

2024年8月27日 19:50

测试用例的作用(测试用例的作用)

测试用例的作用(测试用例的作用)

本文目录测试用例的作用写测试用例到底有什么好处测试用例里面最关键的是什么测试用例的作用⒈指导测试的实施测试用例主要适用于集成测试、系统测试和回归测试。在实施测试时测试用例作为测试的标准,测试人员一定要按照测试用例严格按用例项目和测试步骤逐一

2024年6月30日 19:26

viewpage(要怎么在fragment中实现viewpage翻页)

viewpage(要怎么在fragment中实现viewpage翻页)

本文目录要怎么在fragment中实现viewpage翻页viewpager嵌入webview后,当左右滑动时出现冲突,求助各位要怎么在fragment中实现viewpage翻页《?xml version=“1.0“ encoding=“u

2024年7月13日 14:25

abap inner join(ABAP 加入有10个表需要链接在一起,直接用inner join肯定是性能不好的,现在我如果分开,用两个三个表链)

abap inner join(ABAP 加入有10个表需要链接在一起,直接用inner join肯定是性能不好的,现在我如果分开,用两个三个表链)

本文目录ABAP 加入有10个表需要链接在一起,直接用inner join肯定是性能不好的,现在我如果分开,用两个三个表链abap不同数据库表(三个)的内关联问题哪位能给个例子介绍一下abap中查询多个表的数据 我用什么SQL语句速度最快

2024年6月3日 05:26

idea怎么配置maven环境变量(如何在idea中使用maven)

idea怎么配置maven环境变量(如何在idea中使用maven)

本文目录如何在idea中使用mavencreate from archetype有什么用idea配置maven要git吗内网maven,使用本地库,不下载行吗如何在idea中使用maven一.Maven的安装 可参见本人另一篇博文,也可网上

2024年6月26日 07:46

适合网恋cp玩的手机游戏?游戏里cp是什么意思 游戏里cp是啥意思

适合网恋cp玩的手机游戏?游戏里cp是什么意思 游戏里cp是啥意思

各位老铁们好,相信很多人对cp2游戏都不是特别的了解,因此呢,今天就来为大家分享下关于cp2游戏以及适合网恋cp玩的手机游戏的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录适合网恋cp玩的手机游戏游戏里cp是什么

2024年7月7日 21:10

点胶机的调试方法(点胶机怎么使用)

点胶机的调试方法(点胶机怎么使用)

本文目录点胶机怎么使用精密点胶机的调试方法自动点胶机复制方法自动点胶机如何正确安装调试点胶机垂直椭圆怎么调中空半自动打胶机为何罘胶量多,干的太快怎么调节摄像头自动镜座点胶怎么调高低点胶机胶大怎调试全自动点胶机的调试方法有哪些点胶机怎么使用点

2024年7月21日 17:02

vs2017安装qt插件(为什么VS2013没有QT菜单 )

vs2017安装qt插件(为什么VS2013没有QT菜单 )

各位老铁们,大家好,今天由我来为大家分享vs2017安装qt插件,以及为什么VS2013没有QT菜单 的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目

2024年7月13日 00:19

找不到对象otoolbar(origin 左侧工具栏找不到了怎么办)

找不到对象otoolbar(origin 左侧工具栏找不到了怎么办)

本文目录origin 左侧工具栏找不到了怎么办visual studio 2008中VB 控件ToolBar找不到,请问在哪里MFC,我想实现工具栏灰色按钮的功能,比如复制,粘贴可是找不到ToolBar里的IDR_MAINFRAME求解求大

2024年7月24日 09:56

栈的入栈和出栈的顺序规律(计算机中进栈顺序为abcde,则出栈顺序有哪些)

栈的入栈和出栈的顺序规律(计算机中进栈顺序为abcde,则出栈顺序有哪些)

本文目录计算机中进栈顺序为abcde,则出栈顺序有哪些有点不明白,入栈出栈不是说先进后出,那既然入的顺序定了,出的顺序不是只有一种a b c d顺序入栈,正确的出栈顺序,及怎样做入栈顺序是1234,出栈序列有哪几种入栈和出栈的顺序规律是什么

2024年7月20日 12:49

链表c语言删除结点(c语言 删除链表的某个节点)

链表c语言删除结点(c语言 删除链表的某个节点)

本文目录c语言 删除链表的某个节点C语言如何删除链表头节点【C语言编程】写一个函数del,删除动态链表中指定的结点c语言中删除链表中的一个节点创建链表,并删除链表中指定的结点的数据,用C语言实现C语言,单向链表 不知道前驱指针,如何删除某一

2024年7月14日 16:11

字符串数组转成int数组(java怎么把字符串转换为int数组)

字符串数组转成int数组(java怎么把字符串转换为int数组)

各位老铁们好,相信很多人对字符串数组转成int数组都不是特别的了解,因此呢,今天就来为大家分享下关于字符串数组转成int数组以及java怎么把字符串转换为int数组的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录

2024年7月26日 20:45

walla walla union是什么地方?walla 是哪个国家的网站,做什么的

walla walla union是什么地方?walla 是哪个国家的网站,做什么的

本文目录walla walla union是什么地方walla 是哪个国家的网站,做什么的waaya怎么读,如何翻译walla walla union是什么地方美国华盛顿州西雅图的报纸(The Walla Walla Union-Bulle

2023年12月14日 02:20

paypal绑定国内储蓄卡(台湾paypal可以用国内储蓄卡吗)

paypal绑定国内储蓄卡(台湾paypal可以用国内储蓄卡吗)

本文目录台湾paypal可以用国内储蓄卡吗Paypal可以绑定国内的银行卡吗那个银行可以如何绑定请问Paypal支持国内什么银行的储蓄卡绑定paypal绑定国内储蓄卡有风险吗paypal绑定国内储蓄卡选择卡种类paypal绑定国内储蓄卡支付

2024年6月4日 03:23

抽象类的特性(在C#中,类的多态与抽象类区别在哪里)

抽象类的特性(在C#中,类的多态与抽象类区别在哪里)

本文目录在C#中,类的多态与抽象类区别在哪里使用sealed,virtual,override,abstract修饰的类有什么特点下列描述中,( )不是抽象类的特性抽象类与非抽象类有什么区别在C#中,类的多态与抽象类区别在哪里类的多态主要表

2024年7月1日 04:08

近期文章

beside(“beside”怎么读)
2024-09-28 14:41:21
本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1731
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1156
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索