资讯专栏INFORMATION COLUMN

Router入门0x204: react-route简单栗子

番茄西红柿 / 2884人阅读

摘要:概述这一章仔细讲一讲的使用栗子简单使用源码简单使用首页文章我的首页文章我的效果带导航激活效果源码带导航效果首页文章我的首页文章我的效果说明增强版,如果当前路由命中,将会启用或者。

0x000 概述

这一章仔细讲一讲 react-route 的使用栗子

0x001 简单使用

源码

import React from "react"
import ReactDom from "react-dom"
import {BrowserRouter, Switch, Route, Link, withRouter} from "react-router-dom"

// 简单使用
class App extends React.Component {
    render() {
        return (
            
首页 文章 我的

({render: () =>

首页

})}>
({render: () =>

文章

})}>
({render: () =>

我的

})}>
) } } let MyApp = withRouter(App) ReactDom.render( , document.getElementById("app") )

效果

0x002 带导航激活效果

源码

import React from "react"
import ReactDom from "react-dom"
import {BrowserRouter, Switch, Route, NavLink, withRouter} from "react-router-dom"
import "./App.css"
// 带导航效果
class App extends React.Component {
    render() {
        return (
            
首页 文章 location.pathname==="/mine"}>我的

({render: () =>

首页

})}>
({render: () =>

文章

})}>
({render: () =>

我的

})}>
) } } let MyApp = withRouter(App) ReactDom.render( , document.getElementById("app") )

效果

说明
NavLink: Link增强版,如果当前路由命中,将会启用activeStyle或者activeClassName

- activeStyle:?Object: 当链接激活的时候的样式
- activeClassName:?String: 当链接激活的时候的样式类
- isActive?Function: 可以手动判断该链接是否激活,该函数的签名是:function(match, location):boolean
0x003 重定向

源码

import {BrowserRouter, Switch, Route, NavLink, Redirect, withRouter} from "react-router-dom"

class App extends React.Component {
    render() {
        return (
            
首页 文章 我的

({render: () =>

首页

})}>
({render: () =>

文章

})}>
({render: () =>

我的

})}>
) } } ```

效果
当我们访问http://localhost:8081/时,会自动跳转到http://localhost:8081/index

0x004 没找到匹配的路由

源码

import {BrowserRouter, Switch, Route, NavLink, withRouter} from "react-router-dom"

class App extends React.Component {
    render() {
        return (
            
首页 文章 我的

({render: () =>

首页

})}>
({render: () =>

文章

})}>
({render: () =>

我的

})}>
({render: () =>

未找到这个页面

})}/>
) } }

效果

0x005 url传参

源码

import {BrowserRouter, Switch, Route, NavLink, withRouter} from "react-router-dom"

class Article extends React.Component{
    render(){
        return(

{this.props.match.params.id}

) } } class App extends React.Component { render() { return (
首页 文章1 文章2 我的

({render: () =>

首页

})}>
({render: () =>

我的

})}>
) } }

效果

说明
声明Route的时候使用:${name}表示要作为动态参数,之后可以通过this.props.match.params.${name}获取

0x006 页面手动跳转并传参

源码

class Article extends React.Component{
    render(){
        console.log(this)
        return(

文章 id:{this.props.location.state.id}

) } } class App extends React.Component { render() { return (

) } }

效果

说明:

跳转:this.props.history.push(path:String,data:?Object)

获取参数:this.props.location.state

0x007 何时使用Switch

做个试验,假设我们有两个路由:

class App extends React.Component {
    render() {
        return (
            

article

}>

:name

}>
) } }

此时看效果

会发现两个都命中了,这个时候可以使用Switch,他只会命中第一个命中的路由

class App extends React.Component {
    render() {
        return (
            

article

}>

:name

}>
) } }

命中/article

命中/:name

0x008 资源

源码

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/98217.html

相关文章

  • Router入门0x201: 从 URL 到 SPA

    摘要:的全称是统一资源定位符英文,可以这么说,是一种标准,而网址则是符合标准的一种实现而已。渲染器,将组件渲染到页面上。 0x000 概述 从这一章开始就进入路由章节了,并不直接从如何使用react-route来讲,而是从路由的概念和实现来讲,达到知道路由的本质,而不是只知道如何使用react-route库的目的,毕竟react-route只是一个库,是路由的一个实现而已,而不是路由本身。 ...

    honmaple 评论0 收藏0
  • Router入门0x203: react、react-routereact-route-dom

    摘要:概述上一章使用的是自己实现的,当然已经有现成的库给我们用了,那就是。总结看透它,然后掌握它资源源码 0x000 概述 上一章使用的是自己实现的route,当然已经有现成的库给我们用了,那就是react-route。 0x001 history Api说明 在说这个库之前,得先对history新的api做一个了解 window.history.pushState(data,title...

    luxixing 评论0 收藏0
  • Router入门0x205: react-route + redux + react 集成

    摘要:概述这一章终于大集成了集成源码效果说明集成主要是用到库集成源码效果说明主要用到库,是针对库在环境下的封装组件,注入等属性接管跟组件指定路由和组件的对应关系集成源码引入相关的包和链接组件效果说明主要用到库都是用的接 0x000 概述 这一章终于大集成了 0x001 集成react 源码 import React from react import ReactDom from rea...

    yiliang 评论0 收藏0
  • react、react-router、redux 也许是最佳小实践1

    摘要:通过声明式编程模型定义组件,是最强大的核心功能。无论是的浏览器书签,还是的导航功能,只要是可以使用的地方,就可以使用。二级路由使用渲染组件属性状态请选择一个主题。也许是最佳小实践地址,觉得有帮助的话,请点击一下,嘿嘿 小前言 这是一个小小的有关react的小例子,希望通过一个小例子,可以让新手更好的了解到react、react-router4.0、redux的集中使用方法。 这是基...

    Betta 评论0 收藏0
  • react、react-router、redux 也许是最佳小实践1

    摘要:通过声明式编程模型定义组件,是最强大的核心功能。无论是的浏览器书签,还是的导航功能,只要是可以使用的地方,就可以使用。二级路由使用渲染组件属性状态请选择一个主题。也许是最佳小实践地址,觉得有帮助的话,请点击一下,嘿嘿 小前言 这是一个小小的有关react的小例子,希望通过一个小例子,可以让新手更好的了解到react、react-router4.0、redux的集中使用方法。 这是基...

    Edison 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<