展开全部

主编推荐语

本书详细地介绍了React Router的使用方式及运作原理。

内容简介

本书从基础内容出发,详细梳理了浏览器的基础导航能力、history库的使用及原理,以及React Hooks等基础知识,帮助读者学习并掌握React Router的前驱知识。

同时,本书从React Router的发展历程、技术演变出发,介绍了React Router的设计思路,并通过路由器、路由端口、导航三要素,引出React Router的基本使用方法,并对源码进行了全面解析。

此外,本书各章使用React Hooks穿插了30余个案例,在兼顾实用性、可扩展性的同时,为读者学习与理解React Router提供了全面丰富的素材。

通过阅读本书,读者不仅可以融会贯通地掌握React Router,而且能提升对前端路由的认识,并掌握前端领域路由的设计思路与方法。

本书适合有JavaScript或TypeScript基础,想要学习使用React Router,或对React Router实现原理和工程实践感兴趣的开发者阅读。

目录

  • 版权信息
  • 内容简介
  • 序 Foreword
  • 前言 Preface
  • 第1章 导航相关JavaScript前驱知识
  • 1.1 URI和URL
  • 1.1.1 URI和URL简介
  • 1.1.2 浏览器URI编码
  • 1.2 浏览器记录
  • 1.2.1 history.pushState
  • 1.2.2 history.replaceState
  • 1.2.3 通过相对路径添加和修改浏览器记录
  • 1.2.4 在base元素存在的情况下添加和修改浏览器记录
  • 1.3 在浏览器中跳转
  • 1.3.1 window.history.go
  • 1.3.2 window.history.forward
  • 1.3.3 window.history.back
  • 1.3.4 window.location.href
  • 1.3.5 window.location.hash
  • 1.3.6 window.location.replace
  • 1.4 浏览器相关事件介绍
  • 1.4.1 popstate事件
  • 1.4.2 hashchange事件
  • 1.4.3 手动触发事件
  • 1.5 小结
  • 参考文献
  • 第2章 history库详解
  • 2.1 history库概述
  • 2.2 browserHistory
  • 2.2.1 创建browserHistory
  • 2.2.2 history导航
  • 2.2.3 history监听
  • 2.3 hashHisotry
  • 2.3.1 创建hashHisotry
  • 2.3.2 history导航
  • 2.3.3 history监听
  • 2.3.4 history.createHref
  • 2.4 memoryHistory
  • 2.4.1 创建memoryHistory
  • 2.4.2 history导航
  • 2.4.3 history监听
  • 2.5 history库原理
  • 2.5.1 history库的运行流程
  • 2.5.2 history模拟历史栈
  • 2.5.3 browserHistory事件处理
  • 2.5.4 hashHistory事件处理
  • 2.5.5 history.block原理解析
  • 2.6 history库限制
  • 2.6.1 history.block的使用限制
  • 2.6.2 decodeURI解码问题
  • 2.7 使用history替换页面search和hash示例
  • 2.8 小结
  • 参考文献
  • 第3章 React相关知识
  • 3.1 Context
  • 3.2 Hooks
  • 3.2.1 useState
  • 3.2.2 useEffect
  • 3.2.3 useLayoutEffect
  • 3.2.4 useRef
  • 3.2.5 useMemo
  • 3.2.6 useContext
  • 3.2.7 自定义Hook
  • 3.3 Refs
  • 3.3.1 createRef
  • 3.3.2 forwardRef
  • 3.4 Memo
  • 3.5 小结
  • 参考文献
  • 第4章 认识React Router
  • 4.1 ReactRouter是什么
  • 4.2 React Router版本的演进
  • 4.3 静态路由与动态路由
  • 4.4 使用React Router实现一个工程应用
  • 4.5 小结
  • 第5章 Router
  • 5.1 Router是什么
  • 5.2 Router源码解析
  • 5.2.1 history监听
  • 5.2.2 提供初始Context
  • 5.2.3 提前监听
  • 5.3 BrowserRouter
  • 5.4 HashRouter
  • 5.5 NativeRouter
  • 5.6 StaticRouter
  • 5.7 相关Hooks
  • 5.7.1 useRouterContext
  • 5.7.2 useHistory
  • 5.7.3 useLocation
  • 5.8 小结
  • 参考文献
  • 第6章 Route
  • 6.1 Route是什么
  • 6.2 Route的两个基本要素
  • 6.2.1 Route的第一个要素:path
  • 6.2.2 Route的第二个要素:组件渲染方式
  • 6.3 Route传入组件的3个参数
  • 6.3.1 match
  • 6.3.2 location
  • 6.3.3 history
  • 6.4 Route的其他配置
  • 6.4.1 location
  • 6.4.2 exact
  • 6.4.3 strict
  • 6.4.4 sensitive
  • 6.5 Route 源码解析
  • 6.5.1 上下文的更新
  • 6.5.2 运行流程
  • 6.6 相关Hooks
  • 6.6.1 useRouteMatch
  • 6.6.2 useParams
  • 6.7 Route实战案例
  • 6.7.1 嵌套Route
  • 6.7.2 相对路径Route
  • 6.7.3 重定向Route
  • 6.7.4 默认子组件Route
  • 6.7.5 缓存Route
  • 6.7.6 Route渲染组件的可访问性支持
  • 6.7.7 query及命名参数
  • 6.7.8 Route中的代码拆分
  • 6.8 小结
  • 参考文献
  • 第7章 Link
  • 7.1 Link介绍
  • 7.1.1 Link的定义及属性
  • 7.1.2 Link源码解析
  • 7.2 NavLink
  • 7.2.1 带激活态的Link
  • 7.2.2 转义特殊字符
  • 7.2.3 NavLink源码解析
  • 7.3 DeepLinking
  • 7.4 BackButton
  • 7.5 导航实战案例
  • 7.5.1 为导航组件扩展路由匹配
  • 7.5.2 相对上下文路径导航组件
  • 7.5.3 相对上下文路径的导航方法
  • 7.5.4 为导航组件扩展search和hash支持
  • 7.6 小结
  • 参考文献
  • 第8章 其他路由组件及方法
  • 8.1 Switch
  • 8.1.1 Switch简介
  • 8.1.2 Switch源码解析
  • 8.2 Redirect
  • 8.2.1 基本跳转
  • 8.2.2 条件跳转
  • 8.2.3 源码解析
  • 8.3 Prompt
  • 8.4 withRouter
  • 8.5 matchPath
  • 8.6 实战案例
  • 8.6.1 路由动画
  • 8.6.2 Prompt组件
  • 8.6.3 404页面
  • 8.6.4 不销毁未命中路径组件的扩展Switch
  • 8.7 小结
  • 参考文献
  • 第9章 进阶实战案例
  • 9.1 路由组件的滚动恢复
  • 9.1.1 scrollRestoration
  • 9.1.2 容器元素滚动恢复
  • 9.1.3 滚动管理者ScrollManager
  • 9.1.4 滚动恢复执行者ScrollElement
  • 9.1.5 多次尝试机制
  • 9.2 异步history方法
  • 9.2.1 提升history方法
  • 9.2.2 导航感知
  • 9.3 为路由引入hash定位
  • 9.3.1 页面加载
  • 9.3.2 异步数据加载
  • 9.4 为组件引入路由生命周期
  • 9.4.1 路由生命周期
  • 9.4.2 实现路由生命周期高阶组件
  • 9.5 React Router状态同步Redux
  • 9.5.1 接入connected-react-router
  • 9.5.2 connected-react-router原理分析
  • 9.6 React Router状态同步Mobx
  • 9.7 路由与组件的结合实战
  • 9.7.1 路由结合Tabs组件
  • 9.7.2 路由结合Modal组件
  • 9.7.3 路由结合BreadCrumb组件
  • 9.8 为history方法引入前置中间件
  • 9.8.1 Redux中间件
  • 9.8.2 中间件定义
  • 9.8.3 实现history中间件
  • 9.9 组件路由化
  • 9.9.1 为组件加入path属性
  • 9.9.2 为组件赋予路由
  • 9.10 路由与页签机制
  • 9.10.1 页签介绍
  • 9.10.2 页签配置
  • 9.10.3 页签实现
  • 9.11 在React Hooks中使用路由
  • 9.11.1 通过React Hooks获得路由组件
  • 9.11.2 实现useHookRoutes
  • 9.12 微服务路由
  • 9.12.1 微服务介绍
  • 9.12.2 实现示例
  • 9.13 配置化路由扩展
  • 9.13.1 配置化路由与react-router-config
  • 9.13.2 重新实现配置化路由
  • 9.14 配置化路由综合示例
  • 9.14.1 路由配置
  • 9.14.2 导航
  • 9.14.3 使用页签组件
  • 9.14.4 页签栈维护
  • 9.15 小结
  • 参考文献
  • 附录A 从React Router v3.x迁移到React Router v4.x及以上版本
展开全部

评分及书评

评分不足
1个评分

出版方

电子工业出版社

电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。