最近react-router的一个作者另外写了一个类react-router的组件

@reach/router

,尝试后感觉太棒了。如果你的项目只是web端的话我认为可以把你的react-router换掉了。

下面是我到目前看到的所有非常好的点。

  1. 小,就4kb,压缩后比react-router小40kb左右。

  2. 更少的配置

    a. react-router需要3个包(

    history

    ,

    react-router-dom

    ,

    react-router-redux

    ),reach-router只需要一个。

    b. 不需要在store配置router相关信息

    c. 不需要显示的使用history

    // in store config file
    //react-router
    import { routerMiddleware } from 'react-router-redux';
    import createHistory from 'history/createBrowserHistory';
    const history = createHistory();
    const middleware = routerMiddleware(history);
    export { history };//reach/router, nothing
  3. 更好用

    a. 当你想跳转页面时

    // react-router
    import { push } from 'react-router-redux';
    import { PropTypes } from 'prop-types';
    // use it
    this.context.store.dispatch(push('/see-you'));FooComponent.contextTypes = {store: PropTypes.object,
    };
    
    // reach/router
    import { navigate } from "@reach/router";
    navigate(`/lol`);
    

    b.当你想取url里面的参数时

    // react-router
    import { withRouter } from 'react-router-dom';
    import { PropTypes } from 'prop-types';//use it
    const { match: { params: { iAmHere } } } = this.props;
    FooComponent.propTypes = {match: PropTypes.object,
    };
    export default withRouter(FooComponent);
    
    // reach/router
    const { iAmHere } = this.props;
    
  4. 基本一样的api,学习成本非常低

  5. 源码非常简洁,总共就3个文件,900行,如果你想深入理解单页应用的路由是怎么实现的,reach-router,绝对是绝佳的下手资料。

不说了,去看看吧 https://github.com/reach/router

更多专业前端知识,请上 【猿2048】www.mk2048.com

为什么你应该尝试@reach/router相关推荐

  1. 使用Aura.Router在PHP中进行Web路由

    Everyone is interested in SEO-friendly, REST-style URLs. Apache can do URL routing via mod_rewrite r ...

  2. 在React中使用React Router v6

    具有多个视图的单页应用程序 (SPA) 需要有一种路由机制,以便在这些不同视图之间导航,而无需刷新整个网页.这可以通过使用诸如React Router之类的路由库来处理. 在本教程中,让我们看看如何使 ...

  3. 每周分享第 10 期

    这里记录过去一周,我看到的值得分享的东西,每周五发布. (题图:卢日尼基体育场,莫斯科,2014.世界杯开幕式的转播,让我意识到自己去过那个体育场.那天想去莫斯科大学玩,路过一个体育场,大门紧锁,空无 ...

  4. 这可能是你们都在找的:React 纯原生纯hook多标签微前端

    项目地址:https://github.com/X-neuron/antdFront.git 项目特点:     1.采用webpack.babel.antd 等较为原生的配置和函数组件搭建,支持pw ...

  5. vue路由添加.html,怎么使用VueRouter的addRoutes方法实现动态添加用户的权限路由

    怎么使用VueRouter的addRoutes方法实现动态添加用户的权限路由 发布时间:2021-04-26 13:34:44 来源:亿速云 阅读:76 作者:小新 小编给大家分享一下怎么使用VueR ...

  6. 2020年最新前端框架大全,Web工程师人手一份!

    今天跟大家分享一些目前比较热门新鲜度靠前的50款前端工具,希望对你有所帮助. 一.构建工具 1. Parcel 地址:https://parceljs.org Parcel是一款极速零配置WEB应用打 ...

  7. 50个好用的前端框架,千万收好以留备用!

    来源 | https://www.jianshu.com/p/182b69e54fe8 今天跟你分享一些目前比较热门新鲜度靠前的50款前端工具,希望对你有所帮助. 一.构建工具 1. Parcel 地 ...

  8. 前端热门工具简直不要太好用了!

    ★★★★★ Web前端开发神器:点击查看→→  WebStorm安装与使用 今日送书!包邮!10本!(初来乍到,多多指教) <Bootstrap实战> <图解CSS3核心技术与案例实 ...

  9. 2020年最新前端框架大全,Web工程师人手一份

    今天跟大家分享一些目前比较热门新鲜度靠前的50款前端工具,希望对你有所帮助. 一.构建工具 1. Parcel 地址:https://parceljs.org Parcel是一款极速零配置WEB应用打 ...

最新文章

  1. Halcon学习之六:获取Image图像中Region区域的特征参数
  2. 字典创建列表的2种方法,作业
  3. 限制会话id服务端不共享_会话控制 - able-woman - 博客园
  4. 手机基站定位(安卓手机定位源码)
  5. c语言xml字符串,C语言的XML解析器
  6. 好的MongoDB中文文档
  7. redhat配置centos的yum源
  8. 创建型模式二:工厂方法模式
  9. VB.NET在线升级程序源代码,可以独立使用
  10. Centos下安装MySQL全过程(linux下安装MySQL)
  11. Android添加受保护广播
  12. jsp+servlet+mysql的简单使用
  13. 持续集成工具Jenkins_尚硅谷视频学习笔记
  14. 高德地图 经纬度查询位置
  15. Onvif协议客户端开发(8)--球机云台的控制
  16. 我的日本友人(二):清野先生
  17. Python 将网易云歌单迁移到QQ音乐
  18. 【案例】携手捷普 :让流程立于云端,臻于至善
  19. 【计算机组成与结构】主存储器
  20. 【交叉编译】海思平台和安霸平台交叉编译

热门文章

  1. java new string作用_java中直接new String对象?
  2. network 拦截不到东西是怎么做到的?_都说读中职院校学不到东西,中职学生到底是怎么学习的?...
  3. 蔡司三坐标_蔡司三坐标测针的安装指南
  4. 问题 1047: [编程入门]报数问题
  5. vue-cli3.0使用及配置(部分)
  6. JAVA获取Classpath根路径的方法
  7. Visual C++中MFC消息的分类
  8. webstorm最新破解方法
  9. git冲突Please move or remove them before you can merge
  10. mongodb中Gson和java##Bean对象转化类