• REACT全家桶(6)----router


    一、介绍

    1.路由是根据不同的url地址展示不同的页面或者内容

    2.安装:https://reacttraining.com/react-router/web/guides/quick-start

                  npm install react-router-dom@5

    二、使用

    1.导入

    //引入

    import{ HashRouter,Route } from ' react-router-dom '

    2.定义路由

    JSX:

    1. render(){
    2. return(
    3. <div>
    4. <HashRouter>
    5. <Route path="/film" component={Film} />
    6. <Route path="/cinema" component={Cinema} />
    7. <Route path="/mine" component={Mine} />
    8. HashRouter>
    9. div>
    10. )
    11. }

    建议:将路由单独封装在一个js文件中

    注意一级路由与多级路由

    3.重定向

    如果不想让用户访问某个路由或者该路由不在我们书写的路由中,可以让组件跳转到我们指定的路由

    //模糊匹配 重定向

    {/*< Redirect from="/" to="/home" exact/ >*/}

    //exact 精确地

    4.嵌套路由

    父组件:

    子组件:直接用Route

     5.路由跳转

    声明式路由:

     编程式路由:

    6.路由传参

    (1)

    动态路由 代表动态 id可以被替换 在props.match.params中可以获取

    (2)

     (3)

     7.路由拦截

    8.路由模式:HashRouter    BrowserRouter

    9.withRouter

    问题:不是通过component渲染的子组件拿不到history属性

     如果:父组件也没有history怎么处理:

    解决:在需要使用history的子组件中

    //提前引入withRouter(原理:高阶组件)

    export default withRouter(子组件)

    10.反向代理(解决跨域问题)

    // 反向代理:将请求交给自己的后端,自己的后端去请求别人的后端,拿到数据后再返给自己的前端

    参考链接

    https://facebook.github.io/create-react-app/docs/proxying-api-requests-in-development

    开始使用:

    (1)安装插件:

    npm install http-proxy-middleware -S

    (2)在src文件夹下创建setProxy.js文件

    (3)重新启动app

    11.css module

    spa应用,在任意js引入css代码都相当于在head标签内引入,如果是多组件或者多人开发如何避免冲突

    建议每一个组件都可以放入一个同名文件夹中,这样js与css在一起

    css命名时写成  eg: A.module.css

    这样这个css样式只对A起作用

    注意不要单独写标签名选择器

    // JSONP原理:script标签不受同源策略的影响

    // 后台需要接受前端传来的函数名称,用以返回数据

     

  • 相关阅读:
    智能水电表对于普通居民来说有哪些好处?
    基于微信小程序的高校宿舍信息管理系统设计与实现(源码+lw+部署文档+讲解等)
    栈溢出漏洞
    Canal增量订阅MySQL数据同步工具
    【Java 基础语法】Java 的文件操作
    IPv6通过公网共享文件(Windows)
    笔记59:序列到序列学习Seq2seq
    解释 Git 的基本概念和使用方式
    Cadence Allegro PCB设计88问解析(十七) 之 Allegro中焊盘的全连接和花焊盘
    局域网https自签名教程
  • 原文地址:https://blog.csdn.net/weixin_53163211/article/details/127567101