摘要:概述这一章仔细讲一讲的使用栗子简单使用源码简单使用首页文章我的首页文章我的效果带导航激活效果源码带导航效果首页文章我的首页文章我的效果说明增强版,如果当前路由命中,将会启用或者。
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 () } } let MyApp = withRouter(App) ReactDom.render(首页 文章 我的
({render: () => 首页
})}>({render: () => 文章
})}>({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 () } } let MyApp = withRouter(App) ReactDom.render(首页 文章 location.pathname==="/mine"}>我的
({render: () => 首页
})}>({render: () => 文章
})}>({render: () => 我的
})}>, document.getElementById("app") )
效果
说明
NavLink: Link增强版,如果当前路由命中,将会启用activeStyle或者activeClassName。
- activeStyle:?Object: 当链接激活的时候的样式 - activeClassName:?String: 当链接激活的时候的样式类 - isActive?Function: 可以手动判断该链接是否激活,该函数的签名是:function(match, location):boolean0x003 重定向
源码
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
源码
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}获取
源码
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
源码
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/98217.html
摘要:的全称是统一资源定位符英文,可以这么说,是一种标准,而网址则是符合标准的一种实现而已。渲染器,将组件渲染到页面上。 0x000 概述 从这一章开始就进入路由章节了,并不直接从如何使用react-route来讲,而是从路由的概念和实现来讲,达到知道路由的本质,而不是只知道如何使用react-route库的目的,毕竟react-route只是一个库,是路由的一个实现而已,而不是路由本身。 ...
摘要:概述上一章使用的是自己实现的,当然已经有现成的库给我们用了,那就是。总结看透它,然后掌握它资源源码 0x000 概述 上一章使用的是自己实现的route,当然已经有现成的库给我们用了,那就是react-route。 0x001 history Api说明 在说这个库之前,得先对history新的api做一个了解 window.history.pushState(data,title...
摘要:概述这一章终于大集成了集成源码效果说明集成主要是用到库集成源码效果说明主要用到库,是针对库在环境下的封装组件,注入等属性接管跟组件指定路由和组件的对应关系集成源码引入相关的包和链接组件效果说明主要用到库都是用的接 0x000 概述 这一章终于大集成了 0x001 集成react 源码 import React from react import ReactDom from rea...
摘要:通过声明式编程模型定义组件,是最强大的核心功能。无论是的浏览器书签,还是的导航功能,只要是可以使用的地方,就可以使用。二级路由使用渲染组件属性状态请选择一个主题。也许是最佳小实践地址,觉得有帮助的话,请点击一下,嘿嘿 小前言 这是一个小小的有关react的小例子,希望通过一个小例子,可以让新手更好的了解到react、react-router4.0、redux的集中使用方法。 这是基...
阅读 654·2023-04-25 19:43
阅读 3834·2021-11-30 14:52
阅读 3711·2021-11-30 14:52
阅读 3775·2021-11-29 11:00
阅读 3732·2021-11-29 11:00
阅读 3789·2021-11-29 11:00
阅读 3516·2021-11-29 11:00
阅读 5933·2021-11-29 11:00