React----面试补充

文章讨论了React开发中jsx的语法规范,包括单一根节点、变量渲染、类名替换、JS表达式等。提到了React组件的受控与非受控组件概念,以及为何不能使用数组下标作为key的原因。还涵盖了JavaScript的内存泄漏、事件循环机制以及常用的数组方法。文章深入探讨了防抖和节流的异同,并概述了React组件的生命周期变化,特别指出在新版本中移除的部分生命周期方法。最后,对比了BrowerRouter和HashRouter的差异,并介绍了编程式路由导航的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.jsx语法规范?

1.只能有一个根节点
2.使用{}进行变量渲染
3.class变使用className代替
4.{}可以编写js表达式
5.is switch for语句不支持使用
6.{/**/}语句注释写法
7.行内样式结构 例如:style={{border:“5px solid #000”}}
8.大写onClick={this.xxx}

父传子peops可不可以修改

受控组件和非受控组件的区别

为什么不能会用数组的下标作为react组件中的key?

react组件中的key要求是唯一标识符,数组的下标会造成数据的混乱

数组的下标不一定是用来表示内容的唯一的标识

js内存泄漏的几种情况?

被遗忘的DOM元素 闭包的不恰当使用 setTimeOut/setInterval的遗忘

事件循环的理解?

javaScript是一门单线程语言,同时只能做一件事情,实现单线程非阻塞方式就是事件循环

js中常用的数组方法

push() pop() unshift() splice() indexof() map() filter() some() find()

什么是防抖节流?

相同点:

防抖节流都是为了组织操作高频繁触发,从而浪费性能

区别:

防抖是触发高频繁事件之后N秒之内只会执行一次,如果N秒内高频繁时间
再次被触发,则重新计算时间。适用于可以多次触发但触发只生效最后一次的场景
节流是高频事件触发,但在 N秒内只会执行一次,如果在N秒内出发多次函数,只
有一次生效,节流会稀释函数的执行频率

组件生命周期阶段触发?

constructor 执行触发一次
组件将要挂载componentWillMount 执行一次
组件已经挂载完成componentDidMount 执行一次
ajax写到当前组件的生命周期

render会触发1+N次

挂在生命周期会执行一次
调用setState执行render函数
父组件

react生命周期为什么去掉will?

componentWillMount()
componentWillReceiveProps()
componentWillUpdate()
react官方想起掉冗余的一些代码
在React16的Flber架构中执行是有优先级的按顺序执行的

react单頁面的優點?

速度快 性能好 跨浏览器兼容 代码块复用高
单向数据流 高效灵活 声明式设计

BrowerRouter跟HashRouter的区别?

1)底层原理不同

BrowerRouter使用的是H5的histroy API 他不兼容IE9以下的版本
HashRouter使用的是URL的哈希值

2)path的表现形式不同

BrowerRouter的路径中没有#, 例llocalhost:3000/~~
HashRouter的路径中包含#,例:localhost:3000/#/

3)刷新后对路由的state的参数的影响不同

BrowerRouter没有任何影响 因为state保存在histroy的对象中
HashRouter刷新后会导致路由state的参数的丢失

编程式路由导航有哪些?区别?

编程式导航跳转:
props.history.push(url) 跳转页面可以返回上一页,保留历史记录
props.history.replace(url) 跳转页面,清空历史记录
props.history.go(num) 返回第几个页面
props.history.forward()
props.history.back()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

No DeBug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值