zoukankan      html  css  js  c++  java
  • react 路由

    React Router

    React Router由三个包组成:react-router, react-router-dom, react-router-native。react-router提供核心的路由组件与函数。其余两个则提供运行环境(即浏览器与react-native)所需的特定组件。进行网站(将会运行在浏览器环境中)构建,我们应当安装 react-router-dom。

    <BrowserRouter>与<HashRouter>

    BrowserRouter:

      原理是H5的history API,IE9及以下不兼容,需要由web server支持,在web client这边window.location.pathname被react router解析,example.com/react/route

    HashRouter:

      原理是URL的hash,不需要由web server支持,因为它的只有‘/’path需要由web server支持,而#/react/route URL不能被web server读取,在web client这边window,location.hash被react router解析,example.com/#/react/route

    Route

    Route控制路径下显示对应的组件,其exact属性控制绝对匹配到path路径时才会显示组件;path属性指明路径(BrowserRouter的basename下的某个页面路径);component表示要显示的组件。

    <Link>与<NavLink>点击发生页面跳转(其实最终渲染为<a>标签),跳转将更新到对应路径的Route所指的组件上。<NavLink>扩展了<Link>,匹配上url时为渲染的元素添加参数:

    • activeClassName(string):选中状态时添加的类名,可设置选中样式
    • activeStyle(object):被选中时为此元素添加样式
    • exact(bool):为true时,只有当导致和绝对匹配class和style才会应用
    • strict(bool):为true时,在确定为位置是否与当前URL匹配时,将考虑位置pathname后的路径
    • isActive(func)判断链接是否激活的额外逻辑的功能

    Switch

    <Switch>组件包裹一组的<route>,依次匹配并选择渲染选中的route组件。

    Link

    前面的<Route>提供了路由配置,<NavLink><Link>就是可以访问这些路由的组件。我们应用需要在各个页面间切换,如果使用锚点元素实现,在每次点击时,页面被重新加载,React Router提供了<Link>组件用来避免这种状况发生。当 你点击<Link>时,url会更新,组件会被重新渲染,但是页面不会重新加载。

  • 相关阅读:
    如何安装mysql
    07 登录接口开发
    06 跨域问题
    05 实体校验
    04 异常处理
    03 整合shiro+jwt 会话共享
    02 统一结果封装
    01 新建SpringBoot项目 整合Mybatis Plus(Spring Boot 前后端分离)
    结合Scikit-learn介绍几种常用的特征选择方法
    Set_ML
  • 原文地址:https://www.cnblogs.com/zzalmo/p/11313055.html
Copyright © 2011-2022 走看看