首页 > 其他分享 >React— React面试题按照学习顺序持续更新

React— React面试题按照学习顺序持续更新

时间:2024-03-28 11:56:45浏览次数:15  
标签:面试题 顺序 DOM JavaScript js React 组件 JSX

1.React的特点

  • 采用组件化模式,命名式编码,提高代码复用率;
  • 在React Native中可以使用react语法进行移动端开发
  • 使用虚拟DOM(v-dom)和diff算法,减少DOM和浏览器的交互

2.babel在React的作用

  • ES6语法转ES5,如箭头函数、模板字符串、解构赋值等。Babel 可以将这些高级语法转换为浏览器能够兼容的 ES5 代码,确保代码在各种浏览器环境下正常运行。
  • JSX 转换:React 使用 JSX 语法来描述 UI 组件,而浏览器无法直接理解 JSX。Babel 可以将 JSX 代码转换为普通的 JavaScript 代码,使得浏览器能够正确解析和渲染 React 组件。
  • 有些新的 JavaScript API(如 Promise、Map、Set 等)并不是所有浏览器都原生支持的,Babel 可以通过插件的形式提供对这些 API 的 polyfill,使得开发者可以在所有浏览器上使用这些特性。

3.为什么不用JS,使用JSX

  • JSX是原始JS的语法糖;
  • 易读性和易写性,JSX 使得编写 React 组件更加直观和易读,可以在 JavaScript 代码中直接嵌入 HTML 结构;
  • React 使用虚拟 DOM 来提高渲染性能,而 JSX 可以被编译为创建虚拟 DOM 的 JavaScript 代码。

4.什么是虚拟DOM

  • 本质是一个“Object对象” ;
  • 虚拟DOM是React内部在使用,比真实DOM中的属性要少;
  • 虚拟DOM最终会被React转化为真实DOM,渲染在页面上。

5.JSX语法

  • 全称JavaScript XML,是React定义的一种类似于XML的JS扩展语法:JS+XML;
  • 定义虚拟DOM时,不要加引号,类似 HTML 的标签来表示 UI 元素,比如 <div><span><h1>
  • 在 JSX 中使用 JavaScript 表达式,使用大括号 {};
  • class 是 JavaScript 的保留关键字,在 JSX 中使用 CSS 类名时需要使用 className 属性;
  • 可以使用 style 属性来设置元素的内联样式,样式需要使用对象的形式表示,例如 style={{ color: 'red', fontSize: '14px' }};
  • 对于没有子元素的标签,可以使用自闭合形式,比如 <br /><input type="text" />;
  • 使用 {/* */} 来添加注释。

6.模块与组件、模块化和组件化

  •  模块:向外提供特定功能的js程序,一般就是个js

   作用 :复用js,简化js的编写,提高js的运行效率

  •  组件:用来实现局部宫那个效果的代码和资源的集合(html + css + js +image + ...)

   作用:复用代码,简化项目编码,提高运行效率

  • 模块化:当应用的js都以模块来编写的,这个应用就是一个模块化的应用
  • 组件化:当应用以多组件的方式实现,这个应用就是一个组件化的应用

7.React面向组件编程

  • 函数式组件:适用简单组件
// 函数式组件
    function ModeDemo(){
     console.log(this)//此处的this是undefined,因为babel开启了严格模式
        return <h1>函数式组件</h1>
    }
  • 类式组件
import React, { Component } from 'react';
class MyComponent extends Component {
  render() {
    return <div>Hello, I am a class component!</div>;
  }
}
export default MyComponent;

8.

 

标签:面试题,顺序,DOM,JavaScript,js,React,组件,JSX
From: https://www.cnblogs.com/qinlinkun/p/18101213

相关文章

  • Ant Design 设置必填属性的一个坑!Objects are not valid as a React child (found: ob
    1、刚开始,我是用第一种方式。通过一个变量,来设置必填属性的提示值 显示是没有问题的。但是点击ModalForm确认按钮时,报错ObjectsarenotvalidasaReactchild(found:objectwithkeys{requiredMsg}).Ifyoumeanttorenderacollectionofchildren,useanarray......
  • vue/react- 报错Unable to authenticate, need: BASIC realm=“Sonatype Nexus Reposi
    问题描述在vue/react(node.js)项目中,node安装依赖install装包时报错:Unabletoauthenticate,need:BASICrealm=“SonatypeNexusRepositoryManager“如果我们报错差不多,就可以完美解决。解决方法这个问题,其实......
  • 【Flutter 面试题】 Dart 是不是单线程模型?是如何运行的?
    【Flutter面试题】Dart是不是单线程模型?是如何运行的?文章目录写在前面口述回答补充说明示例:异步编程示例:使用Isolates处理计算密集型任务总结写在前面......
  • 【前端面试题-13】目前主流的几种图片格式以及特性和使用场景
    目前主流的图片格式及其特性和使用场景包括:JPEG(.jpg):特性:JPEG是一种有损压缩格式,能够大幅度减少文件大小,但压缩过程中会有一定的图像质量损失。它支持渐进式显示,即先呈现低质量预览再逐渐加载高清晰度版本。使用场景:JPEG适用于需要较小文件尺寸的照片、网页图片、......
  • 【Flutter 面试题】讲解一下Flutter中的动画和过渡效果
    【Flutter面试题】讲解一下Flutter中的动画和过渡效果文章目录写在前面口述回答补充说明运行结果详细说明写在前面......
  • 2024年Java面试题汇总手册(持续更新版)
    简化图如下所示现在假设由于某种原因,employee-producer公开的服务会抛出异常。我们在这种情况下使用Hystrix定义了一个回退方法。这种后备方法应该具有与公开服务相同的返回类型。如果暴露服务中出现异常,则回退方法将返回一些值。6、什么是Hystrix断路器?我们需要它吗?......
  • 2024年Java高分面试指南横空出世!1000道面试题+300W字解析
    42、java中有没有指针?43、java中是值传递引用传递?44、实例化数组后,能不能改变数组长度呢?45、假设数组内有5个元素,如果对数组进行反序,该如何做?46、形参与实参区别47、构造方法能不能显式调用?48、什么是方法重载?49、构造方法能不能重写?能不能重载?50、内部类......
  • 14道MyBatis面试题总结,看完你还敢说懂MyBatis吗?
    Dao接口,就是人们常说的Mapper接口,接口的全限名,就是映射文件中的namespace的值,接口的方法名,就是映射文件中MappedStatement的id值,接口方法内的参数,就是传递给sql的参数。Mapper接口是没有实现类的,当调用接口方法时,接口全限名+方法名拼接字符串作为key值,可唯一定位一个MappedS......
  • Vue 与 React:前端框架对比分析
    ......
  • 使用可迭代对象作为 React 组件
    源码最近看React源码的时候发现其在处理数组的同时也对可迭代协议做了处理,因此React组件可以是一个返回可迭代对象的函数。源码如下:reconcileChildFibersImplif(isArray(newChild)){returnreconcileChildrenArray(returnFiber,currentFirstChild,newChild,lanes,......