2022前端社招React面试题 附答案

本文介绍了2022年前端社招React面试中关于React-Router的常见问题,包括React-Router的实现原理、配置方法、重定向方式、Link与a标签的区别,以及如何获取URL参数和历史对象。此外,还涉及React中refs的用途、事件处理、创建refs的方法,以及在构造函数中使用props的用意。
摘要由CSDN通过智能技术生成

2022前端社招React面试题 附答案

1. React-Router的实现原理是什么?

客户端路由实现的思想:

  • 基于 hash 的路由:通过监听

    hashchange
    

    事件,感知 hash 的变化

    • 改变 hash 可以直接通过 location.hash=xxx
  • 基于 H5 history 路由:

    • 改变 url 可以通过 history.pushState 和 resplaceState 等,会将URL压入堆栈,同时能够应用 history.go() 等 API
    • 监听 url 的变化可以通过自定义事件触发实现

react-router 实现的思想:

  • 基于 history 库来实现上述不同的客户端路由实现思想,并且能够保存历史记录等,磨平浏览器差异,上层无感知
  • 通过维护的列表,在每次 URL 发生变化的回收,通过配置的 路由路径,匹配到对应的 Component,并且 render

前端react面试题详细解答

2. 如何配置 React-Router 实现路由切换

(1)使用<Route> 组件

路由匹配是通过比较 <Route> 的 path 属性和当前地址的 pathname 来实现的。当一个 <Route> 匹配成功时,它将渲染其内容,当它不匹配时就会渲染 null。没有路径的 <Route> 将始终被匹配。

// when location = { pathname: '/about' }
<Route path='/about' component={
   About}/> // renders <About/>
<Route path='/contact' component={
   Contact}/> // renders null
<Route component={
   Always}/> // renders <Always/>
复制代码

(2)结合使用 <Switch> 组件和 <Route> 组件

<Switch> 用于将 <Route> 分组。

<Switch>
    <Route exact path="/" component={
   Home} />
    <Route path
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值