晚期是凭借多个页面借助a标签实现路由的跳转,也就是多页面编程,n个导航对应n个html.
所以spa 应运而生。单页面多组件

路由的工作原理【一种映射关系 门路--组件】

  1. 一开始的地址是没有参数的
  2. 点击路由连贯后,页面并不会产生跳转。并且路由会批改浏览器的地址
  3. 路由中检测浏览器的门路(参数)变动(这里是会疏忽后面的ip 以及port)匹配组件参数,展现相应的组件
    路由监测的实现: 得益于history对象 浏览器历史记录

    咱们个别不会间接去操作这个window.history 去操作浏览器的门路 历史记录的批改以及替换 因为原生的api不好用 so
    借助一个库history.js 这个创立的history对象实质也是操作了bom的history
    history.push/forward/go/back/replace

history: HASH(# 兼容性好) browser

react-router 库其实有三种实现 实用于三种平台 web(dom) native(原生) anywhere(api 过多)

router: 路由器 治理路由
route: 路由(接口 天线)

  1. LINK ROUTE 组件须要包裹在路由器Router内 BrowseRouter 或 HashRouter 必须被路由器所治理 而且只能是一个 多个路由器之间是独立的
  2. link 中的to的属性值最好是小写的 因为不辨别大小写
  3. 路由链接link 实质是a标签 作用就是点击后批改地址栏门路 浏览器的历史记录就会工作 当门路变动就会匹配组件

1) tnpm i react-router-dom

原生写react

  1. 简单须要多个html 引入各种react文件 编码慢
  2. 通过js批改为jsx的模式依附浏览器babel 翻译 代码过多浏览器忙不过来
    应用cli 简略疾速搭建react 利用 cli是webpeck 搭建的,他有好多loader plugins 由很多性能‘
  3. 装置脚手架 create-react-app库帮忙你装置cli
  4. 创立我的项目 create-react-app 我的项目名
  5. 启动 npm start
    webpeck 官网把对于react的配置文件暗藏了 执行eject 会裸露处所有的配置文件并且回不去了

cli:

网络申请。react中不倡议应用jquery 因为他重视的是操作原生dom 而 react是不关注视图层的
axios: Q轻量 可运行在服务端 反对promise 实质就是xmlHttpRequest对象的封装
全局装置后援用报错