React router随手笔记.一

简介: React router随手笔记.一

一.

路由也更像是一映射关系。key 对应一个 value,怎么理解这句话呢?

我们都熟悉的a标签是这样的<a href="XXX">页面2</a>

那么路由其实就是这样写<Route key="xxx" value="component">页面2</Route>

其实路由的原理就是操作BOM(浏览器对象)的一个方法,大家不要迷,我们经常使用的Window.alert(“xx”)这其实并不是dom的方法,而是浏览器的方法。

ff09c7dd6bf24a36821fe52f9baaab79_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

看到这一大堆方法了吗,这其实都是浏览器对象自带的方法,我们关于路由的方法其实要用到的其实是这个

image.png

这些方法其实操作的是我们浏览器的地址栏,每个方法在使用的时候直接对地址栏里的信息来进行操作

image.png

所以<Route key="xxx" value="component">页面2</Route>这句话更像是这样写<Route path="xxx" component="页面2对应的组件">页面2</Route>

这些封装好的方法底层操作的其实都是BOM的history对象里的方法

在React中我们需要单独引入react-router—dom这个包才可以使用, 这个包是facebook官方的包。

image.png

要记住在yarn 或者npm这种包管理工具安装某个依赖的时候,所有字母都是小写的,它识别不出大写字母。

安装以后我们就要在头文件引入这个包里的一些关键组件。

image.png

在这里要说一下,HashRouter可以替换为BrowerRouter这是两种路由方式,前者锚点链接式跳转,兼容性较好。具体区别暂时不需要考虑。

这是锚点HashRouter 有路径前面带有#,而BrowerRouter是不带#的

如果选择的是hashRouter,地址栏中#后面的路径它都会认为是前端资源

image.png

带#,并不意味着所有斜杠前面都带个#

image.png

HashRouter as XXX 的意思是ES6模块化语法重命名的方法可以将这个组件重命名为xxx。

二.

假如我们要展示的效果是这样的,根据我在导航栏点击的地址,下面展示区展示不同的组件

image.png

具体实现的代码如下 HashRouter和BrowerRouter在一个页面里只允许出现一次,且必须包裹住其它路由组件,所以一劳永逸的方法就是包裹在最外层。

image.png

在这里要强调一点,<Link>标签里的 to属性的值并不是我们往常一样如同a标签里的href需要链接到真正文件夹的名字那样,它更像是起了一个语义化的名字一样,我更喜欢把它认为是ID一样,它真正的作用其实是为了和下面的<Router>里的path属性呈现一一对应的关系,你可以随便起名字,那你可能有疑问了。那它怎么知道我要用的组件的路径在哪啊?

image.png

你是否忘记你已经在顶部引入了呢?这里才是你文件的路径

image.png

并且在浏览器里<link>标签最终也是被渲染为a标签,只不过阻止了a标签原生的onclik事件

image.png

三.

我们需要考虑的是,如果我的path出现了相同的值,那么页面会渲染第一个出现的标签,如下图,react就会忽略<Home/>组件的渲染。

image.png

image.png





相关文章
|
2月前
|
资源调度 前端开发 测试技术
React Router 路由管理
【10月更文挑战第10天】本文介绍了 React Router,一个在 React 应用中管理路由的强大工具。内容涵盖基本概念、安装与使用方法、常见问题及解决方案,如路由嵌套、动态路由和路由守卫等,并提供代码示例。通过学习本文,开发者可以更高效地使用 React Router,提升应用的导航体验和安全性。
283 19
|
2月前
|
前端开发 JavaScript 网络架构
实现动态路由与状态管理的SPA——使用React Router与Redux
【10月更文挑战第1天】实现动态路由与状态管理的SPA——使用React Router与Redux
39 1
|
4月前
|
移动开发 资源调度 前端开发
React Router V6 useRoutes的使用
【8月更文挑战第29天】 React Router V6 useRoutes的使用
174 3
|
4月前
|
前端开发
使用 React Router v6 进行布局
【8月更文挑战第27天】
47 1
|
4月前
|
前端开发 测试技术 开发者
React Router的神奇之处:如何用导航与路由管理让你的复杂SPA飞起来?
【8月更文挑战第31天】本文全面解析了React Router——一款用于React应用的路由与导航管理库。通过定义不同路径并依据URL渲染组件,React Router支持路径匹配、参数路由及嵌套路由等多种模式。文章详细介绍了其基本与高级用法,如使用`Link`组件导航、`Switch`组件进行路径匹配及`NavLink`自定义活动链接样式。此外,还探讨了懒加载、代码分割等性能优化技巧,并提供了简单示例代码,帮助读者快速上手。遵循本文最佳实践,开发者能够更高效地利用React Router构建复杂的单页面应用。
82 0
|
4月前
|
前端开发 UED
|
4月前
|
前端开发 JavaScript UED
什么是 React Router?
【8月更文挑战第31天】
29 0
|
5月前
|
前端开发 JavaScript Java
React 速通笔记
【7月更文挑战第17天】
52 1
|
4月前
|
前端开发 JavaScript UED
React 基础与实践 | 青训营笔记
React 基础与实践 | 青训营笔记
54 0
|
7月前
|
资源调度 前端开发 JavaScript
React Router:React应用的路由管理
【4月更文挑战第25天】React Router是React的官方路由库,用于管理SPA的路由。它基于组件,将URL映射到React组件,核心概念包括路由、链接和导航。设置路由时,在根组件中使用BrowserRouter或HashRouter,包裹Routes组件,定义Route规则。Link组件用于创建内部链接,实现导航。高级特性包括嵌套路由、参数化路由和编程式导航,如子路由、动态参数和JavaScript控制的导航。掌握React Router能帮助开发者更高效地构建复杂的React应用。