[react] React-Router的`<Link>`标签和`<a>`标签有什么区别?

haizhilin2013
2019-07-16 21:17:39 星期二
react
                    
                        
React-Router的`<Link>`标签和`<a>`标签有什么区别?
Comments per page
< Page 1 / 1 >
sin7777 2019-08-12 03:59:50

Link 组件最终会渲染为 HTML 标签 <a>,它的 to、query、hash 属性会被组合在一起并渲染为 href 属性。虽然 Link 被渲染为超链接,但在内部实现上使用脚本拦截了浏览器的默认行为,然后调用了history.pushState 方法。

Link 只负责触发 url 变更,Route 只负责根据 url 渲染组件

相比于 <a> 标签,<Link> 避免了不必要的渲染

wesweet 2019-10-29 09:47:07

a标签会重新渲染页面,Link 组件不会

NieShiyi 2020-02-05 06:46:04
  • 是 react-router 里实现路由跳转的链接,一般配合 使用, 的“跳转”行为只会触发相匹配的 对应的页面内容更新,而不会刷新整个页面。 而 标签就是普通的超链接,会触发页面的刷新(非锚点情况)。相比于 标签, 避免了不必要的渲染。
  • 禁掉 a 标签的默认事件,可以在点击事件中执行 event.preventDefault();
zhao-ji 2020-07-31 01:37:18

Link tag can automatically put baseUrl prefix to url, not like anchor tag.

学习不打烊,充电加油只为遇到更好的自己,365天无节假日,每天早上5点纯手工发布前端知识点(死磕自己,愉悦大家)。希望大家在这浮夸的前端圈里,保持冷静,坚持每天花20分钟来学习与思考。在这千变万化,类库层出不穷的前端,建议大家不要等到找工作时,才狂刷题,提倡每日学习!欢迎大家关注3+1开源项目!希望大家每人去学习与思考!(不要为了谁而来,要为自己而努力!

【关注官方公众号】 每天4:30-5:00推送
【公众号推荐】 一起折腾前端算法
【微信学习群】 备注3+1