第六章 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] 尚硅谷 -- 学习笔记(六)相关推荐

  1. [React] 尚硅谷 -- 学习笔记(七)

    第七章 react-ui 最流行的开源React UI组件库 material-ui(国外) 官网 GitHub ant-design(国内蚂蚁金服) PC官网 GitHub 移动官网 GitHub ...

  2. [React] 尚硅谷 -- 学习笔记(四)

    第四章 react ajax 理解 React本身只关注于界面, 并不包含发送ajax请求的代码 前端应用需要通过ajax请求与后台进行交互(json数据) react应用中需要集成第三方ajax库( ...

  3. [React] 尚硅谷 -- 学习笔记(三)

    第三章 react应用(基于react脚手架) 使用create-react-app创建react应用 react脚手架 xxx 脚手架:用来帮助程序员快速创建一个基于 xxx 库的模板项目 包含了所 ...

  4. [React] 尚硅谷 -- 学习笔记(二)

    第二章 React面向组件编程 基本理解和使用 自定义组件 定义组件 工厂函数组件(简单组件) function MyComponent () {return <h2>工厂函数组件(简单组 ...

  5. [React] 尚硅谷 -- 学习笔记(一)

    第一章 React入门 React基本认识 用于构建用户界面的 JavaScript 库(View) 官网 英文官网: https://reactjs.org/ 中文官网: https://doc.r ...

  6. [React] 尚硅谷 -- 学习笔记(五)

    第五章 总结 组件间通信 通过props传递 共同的数据放在父组件上, 特有的数据放在自己组件内部(state) 通过props可以传递一般数据和函数数据, 只能一层一层传递 一般数据–>父组件 ...

  7. B站MySQL(尚硅谷)学习笔记

    B站MySQL基础(尚硅谷)学习笔记 最近在学习数据库技术,并且把视频中的知识点进行了汇总,字数较多,仅供参考. 会持续更新 欢迎读者提出问题与错误,一起交流~ 视频前几集所讲述的基本知识: DB:数 ...

  8. Java 基础 第3阶段:高级应用——尚硅谷学习笔记(含面试题) 2023年

    Java 基础 第 3 阶段:高级应用--尚硅谷学习笔记(含面试题) 2023 年 Java 基础 第 3 阶段:高级应用--尚硅谷学习笔记(含面试题) 2023 年 第 9 章 异常处理 9.1 异 ...

  9. JUC 2020 周阳 尚硅谷 学习笔记

    这里写目录标题 一 JUC 介绍 1 进程线程介绍介绍 2 并发并行的介绍 3 wait 和 sleep的区别 4 线程的状态 二 卖票算法的企业级模板实现 企业级简单实现(synchronized) ...

最新文章

  1. IE跨Iframe时Session丢失问题
  2. 用React的方式思考
  3. linux怎么改程序图标,如何在Ubuntu Unity上更换应用程序图标
  4. 向量的大小和方向,零向量的方向_3
  5. GridView的操作:导出Excel[方案一]
  6. linux中打开gif图片命令,在Linux终端中安装使用Gifski创建GIF动图
  7. Vue项目中关闭Eslint
  8. SpringBoot动态切换数据源-快速集成多数据源的启动器
  9. 第一次失效_直击震撼场面!宁乡新沩丰坝建成以来第一次高水位应急演练!
  10. [WOJ2549]逻辑的连通性
  11. Javascript特效:距离某个时间倒计时
  12. 算法:874. 模拟行走机器人
  13. Matlab数字图像处理学习记录【5】——彩色图像处理
  14. 兰州大学本科毕业论文答辩PPT模板
  15. 思科CCNP网络工程师 和思科CCIE网络工程师考试常见问题GRE虚拟专用网络详解
  16. 如何让局域网中的其他主机访问虚拟机
  17. 腾讯2018第一季度财报:微信用户超10亿,线下零售红利已到来
  18. 苹果手机如何设置代理ip?
  19. Windows下的ARP命令
  20. DH ERP系统权限设计

热门文章

  1. mysql集群参数讲解_Mysql集群讲解(一)
  2. python中pass语句的作用是_Python pass语句以及作用详解
  3. java 测试工具 oracle_SwingBench---ORACLE压力测试工具
  4. Realsense的使用
  5. 计算机考试交互,2017计算机等级考试HTTP的基本概念与交互模型练习题
  6. realsense d435i 跑 vins-fusion
  7. 组合数(codevs 1631)
  8. ubuntu高版本环境变量问题
  9. 在减少对内地房地产投资的同时,加快了在内地零售业的布局;并积极推动“走出去”战略,在全球52个国家投资多种业务。...
  10. JavaScript中一个对象如何继承另外一个对象