react面试要点

这篇具有很好参考价值的文章主要介绍了react面试要点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

# React面试知识点
## React是什么?谈一谈你对react的理解
    1 React是一个网页UI库
    2 react的特点是 声明式 组件化 通用性
    3 react优点: 简单,低耦合高内聚,由于虚拟dom概念,可以做到一次学习到处使用。
    4 react缺点: 并不是一篮子框架,,需要社区来弥补,导致开发者技术选型和学习成本难度增加。

    答:
    React是一个网页UI库, 通过组件化的方式解决视图层开发复用的问题,本质是一个组件化框架。
    它的核心设计思想有三点,分别是声明式、组件化与通用性。
    声明式的优势在于直观与组合。
    组件化的优势在于视图的拆分与模块复用,可以更容易做到高内聚低耦合。
    通用性在于一次学习,随处编写。比如React Native, React 360等,这里主要是靠虚拟DOM来保证实现。
    这使得React的适用范围变得足够广,无论是Web、Native、VR, 甚至Shell应用都可以进行开发。这也是React的优势。
    但作为一个视图层的框架,React的劣势也是十分明显。它并没有提供完整的一揽子解决方案,在开发大型前端应用时,需要向社区寻找并整合解决方案。虽然这一定程度上促进了社区的繁荣,但也为开发者在技术选型和学习适应上造成了一定的成本。


## 为什么要使用jsx
    1 jsx是javascript的超集,可以用xml的方式编写UI组件,结构清晰
    2 相较于模板引擎,并没有提供更多的概念,比如各种模板指令
    3 最终还是需要babel将jsx转换成react.createElement()

    答: jsx是javascript的一个语法拓展,结构类似xml, jsx主要用于声明元素,但react中并不强制使用jsx.即使使用了,在编译中也会将jsx转换成react.createElement. 所以jsx更像是是react.createElement的语法糖,所以从这里可以看出react团队并不想引入javascript以外的知识体系。希望合理的关注点分离,保持组件发开发纯粹性。

    react团队认为模板不应该是开发过程中的关注点,因为引入了模板语法和模板指令等是不佳的实现方案。其次是模板字符串,模板字符串编写结构会造成多内部嵌套,是整个结构变得复杂,并且是优化代码提示也变的困难重重。

    JXON同样是代码提示问题而被团队放弃,所以react团队最后选择了jsx, 因为jsx与其设计思想贴合,不需要引入过多的概念,而且对编辑器代码的语法提示更为友好。


## Babel插件如何实现JSX到JS的编译?
    Babel读取代码并解析生成抽象语法树AST,再讲AST传入插件中进行转换, 而转换是就可以将jsx结构转换成react.createElement函数。


## 生命周期 如何避免坑? 为什么会有坑?
    有不恰当的时机 调用了方法
    在恰当的时机,没有调用方法

    挂载阶段:
        constructor 已被移除
        UNSAFE_componentWillMount
        render 返回JSX 不应做任何产生aside effect的操作
        UNSAFE_componentWillReceiveProps
        getDerivedStateFromProps
        shouldComponentUpdate

        UNSAFE_componentWillUpdate
        componentWillUnmount   接触事件绑定,清除定时器


    优化:
        函数组件: React.mone
        类组件: shouldcompomentWillUpdate
        pure compoment: 
        错误边界:如果出现错误会出现白屏


## 类组件和函数组件有什么区别?
    使用方式和表达效果 是完全一样的
    类 OOP 
        在生命周期中掺杂业务逻辑

    函数组件 FP
        存粹 简单 易于测试

    组合优于继承
    函数组件对 时间切片和并发优化更友好


## 如何设计react组件:
    展示组件
        代理组件
        样式组件

    业务组件
        容器组件
        高阶组件 埋点
如何更好的组合组件:文章来源地址https://www.toymoban.com/news/detail-741767.html

到了这里,关于react面试要点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 简介:在这篇教程中,我们将使用React.js框架创建一个简单的聊天机器人的前端界面,并利用Dialogflo

    作者:禅与计算机程序设计艺术 介绍及动机 聊天机器人(Chatbot)一直是互联网领域中的热门话题。而很多聊天机器人的功能都依赖于人工智能(AI)技术。越来越多的企业希望拥有自己的聊天机器人系统,从而提升自己的竞争力。为此,业界也出现了很多基于开源技术或云

    2024年02月06日
    浏览(57)
  • 前端面试题 —— React (二)

    目录 一、React 组件中怎么做事件代理?它的原理是什么? 二、React.Component 和 React.PureComponent 的区别 三、Component, Element, Instance 之间有什么区别和联系? 四、React声明组件有哪几种方法,有什么不同? React 声明组件的三种方式: React.createClass与React.Component区别: 五、React中可

    2024年02月15日
    浏览(59)
  • 前端面试题 —— React (三)

    目录 一、对componentWillReceiveProps 的理解 二、React.forwardRef是什么?它有什么作用? 三、可以使用TypeScript写React应用吗?怎么操作? (1)如果还未创建 Create React App 项目 (2)如果已经创建了 Create React App 项目,需要将 typescript 引入到已有项目中 四、React中constructor和getInitia

    2024年02月15日
    浏览(63)
  • 前端框架学习-React(一)

    React 应用程序是由 组件 组成的。 react 程序是用的jsx语法,使用这种语法的代码需要由babel进行解析,解析成js代码。 jsx语法: 只能返回一个根元素 所有的标签都必须闭合(自闭和或使用一对标签的方式闭合) 使用驼峰式命名法给大部分属性命名如:className 大写字母开头的

    2024年02月12日
    浏览(40)
  • 前端框架 Nextjs React 部署

    目录 一、node环境部署 二、静态导出 补充:路由问题 Nextjs打包还是非常方便的,就是网上资料不太全,导致踩了一些坑,下面是我亲自实践的两种打包方式。 一、node环境部署 这种方式最简单,也比较不容易出错,但部署时服务器需安装有node环境,速度没话说,杠杠的! 构

    2024年02月12日
    浏览(42)
  • 前端面试:【React】构建现代Web的利器

    嘿,亲爱的React探险家!在前端开发的旅程中,有一个神奇的库,那就是 React 。React是一个用于构建现代Web应用的强大工具,它提供了组件化开发、状态管理、生命周期管理和虚拟DOM等特性,让你的应用开发变得更加高效和愉快。 1. 什么是React? React是一个由Facebook开发和维护

    2024年02月11日
    浏览(56)
  • Vue 和 React 前端框架的比较

    本文研究了流行的前端框架 Vue 和 React 之间的区别。通过对它们的学习曲线、视图层处理方式、组件化开发、响应式数据处理方式和生态系统及社区支持进行比较分析,得出了它们在不同方面的优劣和特点。该研究对于开发者在选择合适的前端框架时提供参考。 Vue 是一款由

    2024年02月13日
    浏览(63)
  • React与Vue:前端框架的比较

    在前端开发领域,React和Vue是两个备受瞩目的框架。它们都提供了构建用户界面的强大工具,但它们在实现方式、性能和设计理念上存在一些关键差异。本文将深入探讨这两个框架之间的主要区别。 首先,让我们从数据流的角度来看。在Vue中,数据流是双向的,这意味着组件

    2024年01月20日
    浏览(45)
  • 面试 React 框架八股文十问十答第七期

    作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)React 废弃了哪些生命周期?为什么? 在React 16.3版本后,React废弃了一些生命周期方法,这是为了简化API、提高可维护性以及引入更

    2024年01月18日
    浏览(41)
  • 面试 React 框架八股文十问十答第四期

    作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)哪些方法会触发 React 重新渲染?重新渲染 render 会做些什么? React 中的重新渲染可以由以下几种情况触发: 状态变化(State Change

    2024年01月25日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包