[React] 尚硅谷 -- 学习笔记(六)
第六章 react-router4
理解
react-router
react的一个插件库
专门用来实现一个SPA应用
基于react的项目基本都会用到此库
SPA
单页Web应用(single page web application,SPA)
整个应用只有一个完整的页面
点击页面中的链接不会刷新页面, 本身也不会向服务器发请求
当点击路由链接时, 只会做页面的局部更新
数据都需要通过ajax请求获取, 并在前端异步展现
路由
什么是路由
一个路由就是一个映射关系(key:value)
key为路由路径, value可能是
function/component
路由分类
后台路由: node服务器端路由, value是function, 用来处理客户端提交的请求并返回一个响应数据
前台路由: 浏览器端路由, value是component, 当请求的是路由path时, 浏览器端前没有发送http请求, 但界面会更新显示对应的组件
后台路由
注册路由:
router.get(path, function(req, res))
当node接收到一个请求时, 根据请求路径找到匹配的路由, 调用路由中的函数来处理请求, 返回响应数据
前端路由
- 注册路由:
<Route path="/about" component={About}>
- 当浏览器的hash变为#about时, 当前路由组件就会变为About组件
前端路由实现
history库
网址: https://github.com/ReactTraining/history
管理浏览器会话历史(history)的工具库
包装的是原生BOM中window.history和window.location.hash
history API
History.createBrowserHistory()
: 得到封装window.history的管理对象History.createHashHistory()
: 得到封装window.location.hash的管理对象history.push()
: 添加一个新的历史记录history.replace()
: 用一个新的历史记录替换当前的记录history.goBack()
: 回退到上一个历史记录history.goForword()
: 前进到下一个历史记录history.listen(function(location){})
: 监视历史记录的变化
react-router相关API
组件
<BrowserRouter>
<HashRouter>
<Route>
<Redirect>
<Link>
<NavLink>
<Switch>
其他
history对象
match对象
withRouter函数
基本路由使用
下载react-router:
npm install --save react-router@4
引入bootstrap.css:
<link rel="stylesheet" href="/css/bootstrap.css">
[React] 尚硅谷 -- 学习笔记(六)相关推荐
- [React] 尚硅谷 -- 学习笔记(七)
第七章 react-ui 最流行的开源React UI组件库 material-ui(国外) 官网 GitHub ant-design(国内蚂蚁金服) PC官网 GitHub 移动官网 GitHub ...
- [React] 尚硅谷 -- 学习笔记(四)
第四章 react ajax 理解 React本身只关注于界面, 并不包含发送ajax请求的代码 前端应用需要通过ajax请求与后台进行交互(json数据) react应用中需要集成第三方ajax库( ...
- [React] 尚硅谷 -- 学习笔记(三)
第三章 react应用(基于react脚手架) 使用create-react-app创建react应用 react脚手架 xxx 脚手架:用来帮助程序员快速创建一个基于 xxx 库的模板项目 包含了所 ...
- [React] 尚硅谷 -- 学习笔记(二)
第二章 React面向组件编程 基本理解和使用 自定义组件 定义组件 工厂函数组件(简单组件) function MyComponent () {return <h2>工厂函数组件(简单组 ...
- [React] 尚硅谷 -- 学习笔记(一)
第一章 React入门 React基本认识 用于构建用户界面的 JavaScript 库(View) 官网 英文官网: https://reactjs.org/ 中文官网: https://doc.r ...
- [React] 尚硅谷 -- 学习笔记(五)
第五章 总结 组件间通信 通过props传递 共同的数据放在父组件上, 特有的数据放在自己组件内部(state) 通过props可以传递一般数据和函数数据, 只能一层一层传递 一般数据–>父组件 ...
- B站MySQL(尚硅谷)学习笔记
B站MySQL基础(尚硅谷)学习笔记 最近在学习数据库技术,并且把视频中的知识点进行了汇总,字数较多,仅供参考. 会持续更新 欢迎读者提出问题与错误,一起交流~ 视频前几集所讲述的基本知识: DB:数 ...
- Java 基础 第3阶段:高级应用——尚硅谷学习笔记(含面试题) 2023年
Java 基础 第 3 阶段:高级应用--尚硅谷学习笔记(含面试题) 2023 年 Java 基础 第 3 阶段:高级应用--尚硅谷学习笔记(含面试题) 2023 年 第 9 章 异常处理 9.1 异 ...
- JUC 2020 周阳 尚硅谷 学习笔记
这里写目录标题 一 JUC 介绍 1 进程线程介绍介绍 2 并发并行的介绍 3 wait 和 sleep的区别 4 线程的状态 二 卖票算法的企业级模板实现 企业级简单实现(synchronized) ...
最新文章
- IE跨Iframe时Session丢失问题
- 用React的方式思考
- linux怎么改程序图标,如何在Ubuntu Unity上更换应用程序图标
- 向量的大小和方向,零向量的方向_3
- GridView的操作:导出Excel[方案一]
- linux中打开gif图片命令,在Linux终端中安装使用Gifski创建GIF动图
- Vue项目中关闭Eslint
- SpringBoot动态切换数据源-快速集成多数据源的启动器
- 第一次失效_直击震撼场面!宁乡新沩丰坝建成以来第一次高水位应急演练!
- [WOJ2549]逻辑的连通性
- Javascript特效:距离某个时间倒计时
- 算法:874. 模拟行走机器人
- Matlab数字图像处理学习记录【5】——彩色图像处理
- 兰州大学本科毕业论文答辩PPT模板
- 思科CCNP网络工程师 和思科CCIE网络工程师考试常见问题GRE虚拟专用网络详解
- 如何让局域网中的其他主机访问虚拟机
- 腾讯2018第一季度财报:微信用户超10亿,线下零售红利已到来
- 苹果手机如何设置代理ip?
- Windows下的ARP命令
- DH ERP系统权限设计
热门文章
- mysql集群参数讲解_Mysql集群讲解(一)
- python中pass语句的作用是_Python pass语句以及作用详解
- java 测试工具 oracle_SwingBench---ORACLE压力测试工具
- Realsense的使用
- 计算机考试交互,2017计算机等级考试HTTP的基本概念与交互模型练习题
- realsense d435i 跑 vins-fusion
- 组合数(codevs 1631)
- ubuntu高版本环境变量问题
- 在减少对内地房地产投资的同时,加快了在内地零售业的布局;并积极推动“走出去”战略,在全球52个国家投资多种业务。...
- JavaScript中一个对象如何继承另外一个对象