试着用React写项目-利用react-router解决跳转路由等问题(三)
转载请注明出处:王亟亟的大牛之路
本来想一下子把路由的接下来的内容都写完的,但是今天白天开了会,传了些代码打了个包,就被耽搁了 这一篇来讲一下 IndexLink和 onlyActiveOnIndex的一些问题
老习惯先安利一下:https://github.com/ddwhan0123/Useful-Open-Source-Android
例子的源码都传git了,源码地址:https://github.com/ddwhan0123/ReactDemo
知识来源:https://github.com/reactjs/react-router-tutorial
前两天写了一些例子,包括普通跳转,嵌套,带参跳转等等,这一篇主要来实现一个常用功能 “回到首页“。
之前的例子里我们通过访问/来进入首页
<Route path="/" component={First}></Route>
但是其实我们Main.js这个页面他没有页面内容,我们一开始就进入了First.js
那么如何让我们的Main.js有内容呢?
可以使用IndexRoute
先来新建一个模拟的页面
Six.js
import React from 'react';
export default React.createClass({
render(){
return (
<div>
<h3>this is Six</h3>
</div>
)
}
})
也就是刷出一句话
要让Main.js能显示内容需要2步
1在 Main.js里加入以下内容
<IndexRoute component={Six}/>
实质上他让本来空空的根路径多了一个Six组件
<First>
<Six/>
</First>
这还不够还需要在 First.js里做一些修改,如下
{this.props.children || <Six/>}
这使得<Six/>成为了根路由的子组件,它成为父节点的this.props.children
内容理解有差异或者错误大街可以给我提,原文地址:https://github.com/reactjs/react-router-tutorial/tree/master/lessons/08-index-routes
接下来我们来提一下如何做一个返回页,最简单的方式是,写一个路由链过去,这很方便很简单,像这样
<NavLink to="/">To First</NavLink>
官方不推荐我们这么干,因为跳转根路由会丢失一些内容,诸如activeClassName,activeStyle什么的。
官方推荐的是精确匹配方式 IndexLink
要是用还是要导包
import { IndexLink } from 'react-router'
然后使用
<IndexLink to="/" activeClassName="active">To First</IndexLink>
就行了
你还记得我们自己封装的<NavLink/>组件吗?
它使用<Link/>实现的,那么就不能使用 IndexLink方式了吗?
答案是可以,加一个属性就行那就是 onlyActiveOnIndex
让我们在 Two.js这个页面加上返回按钮试试
import React from 'react';
import styled from 'styled-components';
import NavLink from './../component/nav/NavLink';
const H3= styled.h3`
background-color: #a11
`;
export default React.createClass({
render(){
return (
<div>
<NavLink to="/" onlyActiveOnIndex>To First</NavLink><br></br>
<H3>i am two h3</H3>
</div>
);
}
})
单纯的加一个属性就好很简单,看看效果
进入首页 点击 Two
到了第二页点返回键就可以回到第一页了
效果很简单,但是整明白以后做类似功能就不会迷糊了,接下来还会继续写React-Router相关内容吧,我本身不是做前端的,学习起来不是太快,各位观众老爷见谅哦!
试着用React写项目-利用react-router解决跳转路由等问题(三)的更多相关文章
- 试着用React写项目-利用styled-components解决样式问题
转载请注明出处:王亟亟的大牛之路 啰嗦之前先安利,会渐渐丰富前端的知识点 https://github.com/ddwhan0123/Useful-Open-Source-Android 昨天用web ...
- 试着用React写项目-利用react-router解决跳转路由等问题(二)
转载请注明出处:王亟亟的大牛之路 这一篇还是继续写react router相关的内容,废话之前先安利:https://github.com/ddwhan0123/Useful-Open-Source- ...
- 试着用React写项目-利用react-router解决跳转路由等问题(一)
转载请注明出处:王亟亟的大牛之路 继续本周的大方向,继续学习React,昨天把简单的hi all内容呈现出来后,今天研究如何多页面或者实现页面嵌套, 开始今天的内容前老规矩,先安利:https://g ...
- 试着用React写项目-利用Webpack搭环境
转载请注明出处:王亟亟的大牛之路 最近都蛋疼,然后前些天开了个会就是关于"不加班就得死"的死命令,作为抵制加班的先头兵,我感觉我时日无多是时候加快武装自己的速度不然吃土都不配了,就 ...
- React初步学习-利用React构建个人博客
React初步学习-利用React构建个人博客 用React和Webpack写了一个很简单的个人博客,主要是想要熟悉一下react中各种基本基本属性及方法的使用.在构建过程中碰到不少问题,通过阅读官方 ...
- react router @4 和 vue路由 详解(三)react如何在路由里面定义一个子路由
完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 5.react如何在路由里面定义一个子路由? a.引入在需要子路由的页面引入Rout ...
- 【腾讯Bugly干货分享】React Native项目实战总结
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/577e16a7640ad7b4682c64a7 “8小时内拼工作,8小时外拼成长 ...
- React Native 项目运行在 Web 浏览器上面
React Native 的出现,让前端工程师拥有了使用 JavaScript 编写原生 APP 的能力.相比之前的 Web app 来说,对于性能和用户体验提升了非常多. 但是 React Nati ...
- [转] 三步将你的 React Native 项目运行在 Web 浏览器上面
React Native 的出现,让前端工程师拥有了使用 JavaScript 编写原生 APP 的能力.相比之前的 Web app 来说,对于性能和用户体验提升了非常多. 但是 React Nati ...
随机推荐
- AspNetPager.dll 分页控件使用
今天在用.net 做网站的时候,用到了DATALIST,但是datalist 没有自带的分页控件,后来在网上找了好长时间,看了aspnetpager.dll这个控件,这个控件挺好用的.我把使用方法写出 ...
- android 打开系统相机,
1.第一步在androidmanifest.xml中注册 <uses-permission android:name="android.permission.WRITE_EXTERNA ...
- 使用navicat mysql 远程连接数据库
远程连接数据库,假设两台主机上都有navicat 客户端 远程主机A ip地址:192.168.100.91 ,port 3306,数据库用户名 rootA 密码 123456A 本地主 ...
- [django]celery_redis探索
celery+redis能做什么及简单原理 能干嘛: 看这里http://yshblog.com/blog/163 https://segmentfault.com/a/119000001565487 ...
- python接口自动化-token参数关联登录(二)
原文地址https://www.cnblogs.com/yoyoketang/p/9098096.html 原文地址https://www.cnblogs.com/yoyoketang/p/68866 ...
- AI-Tank
编程,就是编写人生,你的思维越好,就的生活就会充满乐趣,不多说了,下面来讲一个游戏. 讲游戏的开始,要说一点,游戏可以玩,不能沉溺.不然人的一生就会沦陷进去. 下面讲一个使用的代码游戏. 在玩游戏的时 ...
- bootstrap modal 垂直居中对齐
bootstrap modal 垂直居中对齐 文章参考 http://www.bubuko.com/infodetail-666582.html http://v3.bootcss.com/Jav ...
- python webdriver api-右键另存下载文件
右键另存下载文件 先编辑SciTE脚本: ;ControlFocus("title","text",controlID) ;表示将焦点切换到标题为title窗体 ...
- 在windows上构建LLVM 7.0.1
关于在windows上构建LLVM,网上有不少文章,但都是互相抄来的,写作时极不认真,不是少这个,就是少那个,没有一篇是可以完整照着做下来的,实在气人. 本文的安装和配置过程,我亲自操作过好几遍,不惜 ...
- js小数运算出现多位小数如何解决
小数相乘出现很多位小数的问题:这个问题自己以前也遇到过,现在特意来总结一下: Number类型: Number类型是ECMAScript中最常用和最令人关注的类型了:这种类型使用IEEE754格式来表 ...