| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> React 路由 -> 正文阅读 |
|
[JavaScript知识库]React 路由 |
这是我做的一个基于UmiJS的任务待办桌面应用,欢迎大家给我star 这是我做的一个博客管理系统,该系统在路由拦截这一块的做的非常好,欢迎大家star 路由路由基本功能
historyhistory可以用来兼容在不同浏览器、不同环境下对历史记录的管理。 history分为三类,分别是browserHistory、hashHistory和menoryHistory。browserHistory利用的是H5中的history接口。hashHistory利用的是history中的location属性的hash。 browserHistory采用push和replace(编程式路由)来实现url的改变,这两个方法分别封装了history的pushState和replaceState方法。这两个方法都会改变当前的url,但不会刷新页面。还有例如go()、back()、forward()等方法。这些方法都会触发popState事件,所以在browseHistory采用手动触发popState的方式来实现对url改变的监听。 hashHistory通过区分history对象中的location属性中包含的hash字段来渲染不同的组件。 React-Router的实现原理React-Router是建立在history之上的,history会监听浏览器地址栏的变化,并解析url转化为location对象,然后router匹配到对应的路由,最后渲染对应的组件。 Router负责根据当前的url来渲染相应的组件。 何如配置React-Router实现路由切换
<Link>的跳转行为只会触发相匹配的组件的内容更新,而不会重新渲染整个页面。 <NavLink>是一种特殊的<Link>,当它的to属性与当前地址匹配时,可以将其定义为active状态。 <Redirect>组件用于重定向路由。
从/users/:id 转到 /user/profile/:id。 Link和a标签的区别从最终渲染的DOM来看,两者都是链接。区别在于:<Link>是实现路由跳转的链接,一般配合 我个人的理解:因为React是一个单页面应用,在每次进行路由切换时都是在一个HTML文件中发生的,这个HTML文件在页面首次加载时就已经下载下来了,使用<Link>在路由切换时不会重新去请求一个HTML文件;而<a>在每次跳转时都会加载对应页面的HTML文件,在某些网速慢得情况下会出现空白页,导致用户体验不好。<Link>在通过阻止<a>标签的默认事件,然后根据href(即<Link>的to属性)进行页面跳转。 Router如何获取URL的参数和历史对象获取URL参数:
获取历史对象:
路由拦截(路由守卫)
Router V6V6版本的一些更改
编程式导航Router v6通过useNavigate钩子函数实现编程式导航
传参Router v6有两种传参方式
params是一个对象,里面包含很多方法:get、append、delete、forEach等,可以对传来的参数进行操作。
第二种方法的参数就是一个参数对象。 嵌套路由
配置默认路由使用index关键字配置默认路由
|
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:39:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |