react第六天学习笔记
1.redux-thunk:这个是为了配合react-reducer中的dispatch方法的异步操作
即在createStore()的第二个参数中传入applyMiddleware(thunk)
异步action, 使用redux-thunk 之后,就可以在actionCreator里return一个方法,这个方法的参数是dispatch
export const decrementAsync = (id) => {
return (dispatch) => {
setTimeout(() => {
dispatch(decrement(id))
}, 2000)
}
}
2.react-router:这是react为了方便组件之间页面的跳转,其中在react-router-dom api中有
1)基于浏览器环境的开发,只需要安装react-router-dom
2)BrowserRouter:使用HTML5提供的history API(pushState, replaceState 和 popstate 事件)来保持UI和URL的同步(只需在根组件上套一层即可)
3)HashRouter:使用URL的hash部分(即 window.location.hash)来保持UI和URL的同步。(同上组件,浏览器路由格式多了一层#)
4)Link:为应用提供声明式的、可访问的导航链接。
<li><Link to="/home">首页</Link></li>
5)Route:设置自己在路由中所代表的url,
<Route component={Home} path="/home"/>
也可以在Route中渲染组件,方便往组件中传参数,也可配合state进行权限配置
<Route path="/home" render={(routeProps)=>{ return <Home {...routeProps} x={1}/>} />
6)Redirect:<Redirect to="/home" from="/" exact /> 与switch匹配使用 exact表示完全匹配,不加表示模糊匹配(用这个开头的)
7)Switch:依次匹配 匹配到一个就退出
8)Route和Redirect的路径参数path可以传参
<Route component={ArticalDetail} path="/artical/:id" />
然后在ArticalDetail组件中使用this.props.match.params.id拿取
9)组件中的API跳转:(Route路由装饰过的组件:如果此组件未用Route装饰,也可通过高阶组件withRouter装饰也可用以下的属性)
this.props.history.push('/content') 将新的路径压入到history中
this.props.history.push({ pathname:'/studentDetails', payload:record }) 这种方式跳转可以通过 this.props.localhost.payload来获取传递的参数record this.props.history.go(n) n为正数或者负数,表示前进或者后退
this.props.history.goBack() 后退
this.props.history.goForward() 前进
10)扩展:像后台请求数据的三种方法:
ajax,img,sendBeacon
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?