网站首页 > 技术文章 正文
问题:React如何进?组件/逻辑复??
解析:抛开已经被官?弃?的Mixin,组件抽象的技术?前有三种?较主流:
?阶组件:
属性代理
反向继承
渲染属性
react-hooks
问题:setState到底是异步还是同步?
解析:先给出答案: 有时表现出异步,有时表现出同步
1. setState 只在合成事件和钩?函数中是“异步”的,在原?事件和 setTimeout 中都是同步的。
2. setState 的“异步”并不是说内部由异步代码实现,其实本身执?的过程和代码都是同步的,只是合成事件和钩?函数的调?顺序在更新之前,导致在合成事件和钩?函数中没法??拿到更新后的值,形成了所谓的“异步”,当然可以通过第?个参数 setState(partialState, callback) 中的 callback 拿到更新后的结果。
3. setState 的批量更新优化也是建?在“异步”(合成事件、钩?函数)之上的,在原?事件和setTimeout 中不会批量更新,在“异步”中如果对同?个值进?多次 setState , setState 的批量更新策略会对其进?覆盖,取最后?次的执?,如果是同时 setState 多个不同的值,在更新时会对其进?合并批量更新。
问题:React的请求应该放在哪个?命周期中?
解析:React的异步请求到底应该放在哪个?命周期?,有?认为在 componentWillMount 中可以提前进?异步请求,避免?屏,其实这个观点是有问题的.
由于JavaScript中异步事件的性质,当您启动API调?时,浏览器会在此期间返回执?其他?作。当React渲染?个组件时,它不会等待componentWillMount它完成任何事情 - React继续前进并继续render,没有办法“暂停”渲染以等待数据到达。
?且在 componentWillMount 请求会有?系列潜在的问题,?先,在服务器渲染时,如果在 componentWillMount ?获取数据,fetch data会执?两次,?次在服务端?次在客户端,这造成了多余的请求,其次,在React 16进?React Fiber重写后, componentWillMount 可能在?次渲染中多次调?.
?前官?推荐的异步请求是在 componentDidmount 中进?.
如果有特殊需求需要提前请求,也可以在特殊情况下在 constructor 中请求:
react 17之后 componentWillMount 会被废弃,仅仅保留 UNSAFE_componentWillMount
问题:如何触发重排和重绘?
解析:任何改变?来构建渲染树的信息都会导致?次重排或重绘:
添加、删除、更新DOM节点
通过display: none隐藏?个DOM节点-触发重排和重绘
通过visibility: hidden隐藏?个DOM节点-只触发重绘,因为没有?何变化
移动或者给??中的DOM节点添加动画
添加?个样式表,调整样式属性
?户?为,例如调整窗???,改变字号,或者滚动。
以上就是小科今天整理提供的Web前端开发面试题,希望为Web前端同学提供了有用的面试素材,以后小科每日均会提供Python及Web相关的习题。学习没有捷径,希望大家都能少走一些弯路,顺利找到工作!
猜你喜欢
- 2024-10-04 前端工程师面试题汇总 前端工程师面试试题
- 2024-10-04 2023年前端面试题Augluar基础面试题
- 2024-10-04 这几个前端面试题,答案可能不全,但题目值得收藏
- 2024-10-04 「精辟」前端31道JavaScript面试题(配答案)
- 2024-10-04 前端面试题每日一练,测测你对JavaScript生成器和 Array.from 理解
你 发表评论:
欢迎- 533℃Oracle分析函数之Lag和Lead()使用
- 531℃几个Oracle空值处理函数 oracle处理null值的函数
- 529℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 519℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 515℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 505℃【数据统计分析】详解Oracle分组函数之CUBE
- 484℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 483℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端排序 (47)
- 前端密码加密 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)