2024年前端最全React学习笔记七——React-router-web的使用详解(1),面试加分项徐强 百度网盘

读者福利

========

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

由于篇幅过长,就不展示所有面试题了,想要完整面试题目的朋友(另有小编自己整理的2024大厂高频面试题及答案附赠)


< Redirect >


  • 渲染 将使导航到一个新的地址。这个新的地址会覆盖 history 栈中的当前地址

  • 一般写在路由的最下方,当所有路由无法匹配时,跳转到Redirect指定的路由

嵌套路由

===================================================================

在这里插入图片描述

嵌套路由代码案例

import React from “react”;

import { BrowserRouter as Router, Route, Link } from “react-router-dom”;

// 路由组件

const Main = () =>

Main

;

const Sandwiches = () =>

Sandwiches

;

const Tacos = ({ routes }) => (

Tacos

    • Bus
    • Cart

      {routes.map((route, i) => <RouteWithSubRoutes key={i} {…route} />)}

      );

      const Bus = () =>

      Bus

      ;

      const Cart = () =>

      Cart

      ;

      // 路由配置

      const routes = [

      {

      path: “/sandwiches”,

      component: Sandwiches

      },

      {

      path: “/tacos”,

      component: Tacos,

      routes: [

      {

      path: “/tacos/bus”,

      component: Bus

      },

      {

      path: “/tacos/cart”,

      component: Cart

      }

      ]

      }

      ];

      //对路由组件容器的二次封装

      const RouteWithSubRoutes = route => (

      <Route

      path={route.path}

      render={props => (

      <route.component {…props} routes={route.routes} />

      )}

      />

      );

      const RouteConfigExample = () => (

      • Tacos
      • Sandwiches

        {routes.map((route, i) => <RouteWithSubRoutes key={i} {…route} />)}

        );

        export default RouteConfigExample;

        路由传参

        ===================================================================

        向路由组件传递params参数


        • 路由链接(携带参数):< link to=“/demo/tom/18”></ link >

        • 注册路由(接收参数):< Route path=“/demo/:name/:age” component={Test}></ Route >

        • 接收参数:const {name ,age} = this.props.match.params

        在这里插入图片描述

        import React from “react”;

        import { BrowserRouter as Router, Route, Link } from “react-router-dom”;

        const ParamsExample = () => (

        Accounts

        • Netflix
        • Zillow Group
        • Yahoo
        • Modus Create

          );

          const Child = ({ match }) => (

          ID: {match.params.id}

          );

          export default ParamsExample;

          向路由组件传递search参数


          • 路由链接(携带参数): < Link to=“/demo?id=$ {info.id}&name=${info.name}” >{info.name}</ Link >

          • 注册路由(无需接收参数): < Route path=“/demo” component={Demo} />

          • 接受参数:const {search} = this.props.location , const {id,name} = qs.parse(search.slice(1))

          备注:路由组件接受参数由于是search参数:“?id=Netflix&name=Netflix”(urlencoded编码字符串),所以需要一个【querystring库】转化成"{id:‘Netflix’,name:‘Netflix’}"的格式

          import React from “react”;

          import { BrowserRouter as Router, Route, Link } from “react-router-dom”;

          //不用安装,react脚手架已经下载好了,直接引入用

          //将“?id=Netflix&name=Netflix”转换成一个对象{id:‘Netflix’,name:‘Netflix’}的库

          import qs from “querystring”;

          //举例子说明querystring库的使用

          let obj= {name:‘tom’,age:18}

          console.log(qs.stringify(obj)) //name=tom&age=18 urlencoded编码

          let str = “name=tom&age=18”

          console.log(qs.parse(str)) // {name:‘tom’,age:18}

          export default class Test extends React.Component {

          state = {

          infos:[

          {id:‘Netflix’,name:‘Netflix’},

          {id:‘Zillow Group’,name:‘Zillow Group’}

          ]

          }

          render(){

          const {infos} = this

          return (

          Accounts

            {

            infos.map((info) => {

            return (

          • {info.name}

            )

            })

            }

            {/* search参数无需接受 */}

            )

            }

            }

            class Demo extends React.Component{

            const {search} = this.props.location

            const {id,name} = qs.parse(search.slice(1))

            render(){

            return (

            ID: {id}

            NAME: {name}

            )

            }

            }

            向路由组件传递state参数


            • 路由链接(携带参数): < Link to={{pathname:’/demo’,state:{id:info.id,name:info.name}}} >{info.name}</ Link >

            • 注册路由(无需接收参数): < Route path=“/demo” component={Demo} />

            • 接受参数: const {id,name} = this.props.location.sate

            import React from “react”;

            import { BrowserRouter as Router, Route, Link } from “react-router-dom”;

            export default class Test extends React.Component {

            state = {

            infos:[

            {id:‘Netflix’,name:‘Netflix’},

            {id:‘Zillow Group’,name:‘Zillow Group’}

            ]

            }

            render(){

            const {infos} = this

            return (

            Accounts

              {

              infos.map((info) => {

              return (

            • {info.name}

              )

              })

              }

              {/* state参数无需接受 */}

              )

              }

              }

              class Demo extends React.Component{

              //接收state参数

              const {id,name} = this.props.location.sate

              render(){

              return (

              ID: {id}

              NAME: {name}

              )

              }

              }

              编程式路由导航

              ======================================================================

              最常用的方法:replace()、push()、goback()、go()

              注意只有路由组件才能使用以上编程式路由导航

              import React from “react”;

              import { BrowserRouter as Router, Route, Link } from “react-router-dom”;

              export default class Test extends React.Component {

              state = {

              infos:[

              {id:‘Netflix’,name:‘Netflix’},

              {id:‘Zillow Group’,name:‘Zillow Group’}

              学习笔记

              主要内容包括html,css,html5,css3,JavaScript,正则表达式,函数,BOM,DOM,jQuery,AJAX,vue等等

              开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

              HTML/CSS

              **HTML:**HTML基本结构,标签属性,事件属性,文本标签,多媒体标签,列表 / 表格 / 表单标签,其他语义化标签,网页结构,模块划分

              **CSS:**CSS代码语法,CSS 放置位置,CSS的继承,选择器的种类/优先级,背景样式,字体样式,文本属性,基本样式,样式重置,盒模型样式,浮动float,定位position,浏览器默认样式

              HTML5 /CSS3

              **HTML5:**HTML5 的优势,HTML5 废弃元素,HTML5 新增元素,HTML5 表单相关元素和属性

              **CSS3:**CSS3 新增选择器,CSS3 新增属性,新增变形动画属性,3D变形属性,CSS3 的过渡属性,CSS3 的动画属性,CSS3 新增多列属性,CSS3新增单位,弹性盒模型

              JavaScript

              **JavaScript:**JavaScript基础,JavaScript数据类型,算术运算,强制转换,赋值运算,关系运算,逻辑运算,三元运算,分支循环,switch,while,do-while,for,break,continue,数组,数组方法,二维数组,字符串

              结构,标签属性,事件属性,文本标签,多媒体标签,列表 / 表格 / 表单标签,其他语义化标签,网页结构,模块划分

              **CSS:**CSS代码语法,CSS 放置位置,CSS的继承,选择器的种类/优先级,背景样式,字体样式,文本属性,基本样式,样式重置,盒模型样式,浮动float,定位position,浏览器默认样式

              [外链图片转存中…(img-pZsk6Rjx-1715501940112)]

              HTML5 /CSS3

              **HTML5:**HTML5 的优势,HTML5 废弃元素,HTML5 新增元素,HTML5 表单相关元素和属性

              **CSS3:**CSS3 新增选择器,CSS3 新增属性,新增变形动画属性,3D变形属性,CSS3 的过渡属性,CSS3 的动画属性,CSS3 新增多列属性,CSS3新增单位,弹性盒模型

              [外链图片转存中…(img-AyDgHBZK-1715501940113)]

              JavaScript

              **JavaScript:**JavaScript基础,JavaScript数据类型,算术运算,强制转换,赋值运算,关系运算,逻辑运算,三元运算,分支循环,switch,while,do-while,for,break,continue,数组,数组方法,二维数组,字符串

              [外链图片转存中…(img-QXjNAIwP-1715501940113)]

            • 22
              点赞
            • 10
              收藏
              觉得还不错? 一键收藏
            • 0
              评论
            微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码 微信小程序项目源码毕业设计期末大作业课程设计前端源码
            作为前端使用React、TypeScript、React Router、Redux、Axios、Ant Design和Sass开发ERP软件项目的职责描述,主要包括以下几个方面: 1. 分析需求和设计界面:与产品经理、设计师等团队成员合作,分析用户需求和产品设计,设计符合用户需求的界面,并提供良好的用户体验。 2. 使用React和TypeScript开发组件:根据设计稿或需求文档,使用React和TypeScript开发可复用的组件,利用类型检查提高代码的可靠性和可维护性。 3. 使用React Router实现路由管理:使用React Router进行页面之间的导航和路由管理,确保页面之间的跳转和参数传递的正常。 4. 使用Redux进行状态管理:使用Redux进行全局状态的管理,包括定义和处理数据流、异步操作、状态持久化等,确保数据的一致性和可控性。 5. 使用Axios进行网络请求:使用Axios库发送HTTP请求与后端API进行数据交互,并处理请求的错误和异常情况。 6. 使用Ant Design进行UI开发:使用Ant Design提供的组件库进行界面开发,保证界面的一致性和美观性,并根据需求进行自定义样式。 7. 使用Sass进行样式管理:使用Sass预处理器编写可复用的样式代码,提高样式开发效率,并保持样式的可维护性。 8. 优化性能和用户体验:通过前端优化技术(如代码分割、懒载、缓存等),提升ERP软件的性能和用户体验,确保页面载速度快、操作流畅。 9. 跨浏览器兼容性测试:测试并确保ERP软件在各种主流浏览器(如Chrome、Firefox、Safari等)下的正常运行,并解决兼容性问题。 10. 代码版本管理和团队协作:使用版本管理工具(如Git)管理代码,与团队成员协作开发,参与代码评审和项目迭代。 11. 系统维护和故障排除:及时响应用户反馈并解决软件中出现的前端问题,修复bug,确保ERP软件的稳定运行。 总的来说,前端使用React、TypeScript、React Router、Redux、Axios、Ant Design和Sass开发ERP软件项目的职责是负责开发和维护ERP软件的前端界面和功能,与后端进行数据交互,优化性能和用户体验,并与团队成员协作推动项目的成功交付。

            “相关推荐”对你有帮助么?

            • 非常没帮助
            • 没帮助
            • 一般
            • 有帮助
            • 非常有帮助
            提交
            评论
            添加红包

            请填写红包祝福语或标题

            红包个数最小为10个

            红包金额最低5元

            当前余额3.43前往充值 >
            需支付:10.00
            成就一亿技术人!
            领取后你会自动成为博主和红包主的粉丝 规则
            hope_wisdom
            发出的红包
            实付
            使用余额支付
            点击重新获取
            扫码支付
            钱包余额 0

            抵扣说明:

            1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
            2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

            余额充值