React-router通俗易懂版

前言:在百度搜了很久,也看了很久,就是遇到情况不知道杂用,so 我要去官网撸一遍,等我一会~~

区分图

React Router4.0不是把所有的router整合到一个文件中,而是分布在各自所需要的地方。

1.react-router-dom

    react-router-dom 用于 DOM 绑定的 React Router;react-router-dom包比react-dom多出两个DOM类组件(),所以使用的时候只需要将resct-router-dom引入就可以了。

2.    

    这个是官网推荐的,使用HTML5的history API保持UI与URL同步,高阶路由组件,但是部署这个要配合服务器,会vue的同学可能知道,这个就是路由的history模式,不会的也没关系,我来解释一下:意思就是,一般的网址xxx.xx.xx/box1/box2/test。这时候服务器要去这个域名下的box1文件夹里找box2文件夹里的test文件。但是我们知道,那只是我们写的一个路由,其实并没有那个文件夹,也没有那个文件,需要服务器配合就是解决这个问题的。在用户浏览到这个地址的时候,让服务器重定向在网站的首页,我们的router会处理这个地址,显示相应的组件奥。

    只能有一个子元素。

    这个就写在根节点外面,告诉react,我这个根节点就是一个路由的模式。UI与地址保持一致,没有#号,美观。

BrowserRouter的位置

参数

    basename: 一般你的项目是在服务器的根目录,但是可能你没钱,想在根目录放两个项目,那就得有两个子目录吧。那浏览器访问的根目录啊,所以就得在根目录后面加上项目自己的子目录。

basename图解

        只要在BrowserRouter标签里写上就好,route和link等地方不需要添加前缀。

    getUserConfirmation:func,用户界面之前进行的操作,一般可能用到是否允许获取手机通讯录、地理位置啊啥的,用的不多。

getUserConfirmation

    forceRefresh:用于不支持H5的history模式的浏览器,路由跳转的时候,强制刷新吧。总不能死在当前页面吧。

forceRefresh

    keyLength:我没看懂。。。。

    原文链接:https://www.jianshu.com/p/e3adc9b5f75c

3.

    就是会被react渲染成标签 。to:跳转到指定路径。不会造成页面的刷新。

4.

    它的职责就是,当页面的访问地址跟path匹配的时候,就渲染出相应的组件  。  有三个render方法,最常用的就是component,比render的优先级别高。

    属性有path,就是路由地址;

        exact:true;就是路由地址必须一模一样,/one和/one/two是匹配不上的。

        strict:true;path后面带斜杠,匹配所有以path地址开头的任何地址

Route

5.

    为页面导航准备的,它有激活状态。

    属性:activeClassName:激活时的样式名,默认为active

              activeStyle: obj;激活时的样式对象

6.

只渲染出第一个与当前访问地址匹配的    

你可能感兴趣的:(React-router通俗易懂版)