ag百家乐开奖

热点资讯

AG百家乐下载

你的位置:ag百家乐开奖 > AG百家乐下载 > ag百家乐接口多少钱 前端 React 50个基础高频口试题,助你放浪拿 offer

ag百家乐接口多少钱 前端 React 50个基础高频口试题,助你放浪拿 offer

发布日期:2024-03-01 19:01    点击次数:173

本文汇总了前端口试中平凡问到的 `React 基础高频`口试题ag百家乐接口多少钱,口试常问的基本王人在这里。

## 1、什么是React?

用于构建用户界面的 JavaScript 库,提供了 UI 层面的管制决策,遵从组件设想模式、声明式编程范式和函数式编程倡导,以使前端应用按次更高效,使用诬捏DOM来有用地操作DOM,遵从从高阶组件到低阶组件的单向数据流,匡助咱们将界面成了各个孤独的小块,每一个块即是组件,这些组件之间不错组合、嵌套,组成举座页面.

## 2、React有什么特色?

- 1.它使用诬捏DOM 而不是真确的DOM。

- 2.它不错进行服务器端渲染。

- 3.它遵从单向数据流或数据绑定。

- 4.JSX语法

- 5.声明式编程

- 6.Component(组件化)

## 3、列出React的一些主要优点。

- 1、组件式拓荒,普及代码复用率

- 2、不错约略地在客户端和服务器端使用

- 3、由于 JSX,代码的可读性很好

- 4、React 很容易与 Meteor,Angular 等其他框架集成

- 5、使用React,编写UI测试用例变得相配容易

- 6、单向反馈的数据流会比双向绑定的更安全,速率更快

## 4、React有哪些旁边?

- 1、React 仅仅一个库,而不是一个齐全的框架

- 2、它的库相配巨大,需要技巧来意会

- 3、生手按次员可能很难意会

- 4、编码变得复杂,因为它使用内联模板和 JSX

## 5、什么是JSX?

JSX 是JavaScript XML 的简写。是 React 使用的一种文献,它期骗 JavaScript 的证据力和近似 HTML 的模板语法。这使得 HTML 文献相配容易意会。此文献能使应用相配可靠,并八成普及其性能(说白了即是不错在 js 中写 html)。

## 6、为什么浏览器无法读取JSX?

浏览器只可处理 JavaScript 对象,而不可读取惯例 JavaScript 对象中的 JSX。是以为了使浏览器八成读取 JSX,最初,需要用像 Babel 这么的 JSX 鼎新器将 JSX 文献鼎新为 JavaScript 对象,然后再将其传给浏览器。

## 7、React中的组件是什么?

组件是React应用的构建块。它们是孤独且可重用的代码片断,用于界说UI的一部分。组件不错是类组件或函数组件,而况不错咨嗟我方的情景和人命周期。

## 8、怎样诠释 React 中 render() 的辩论。

每个React组件强制要求必须有一个 render()。它复返一个 React 元素,是原生 DOM 组件的示意。如果需要渲染多个 HTML 元素,则必须将它们组合在一个顽固标志内,举例 `、、

` 等。此函数必须保执结义,即必须每次调用时王人复返调换的终结。

## 9、什么是 Props?

Props 是 React 中属性的简写。它们是只读组件,必须保执纯,即不可变。它们老是在通盘应用中从父组件传递到子组件。子组件恒久不可将 prop 送回父组件。这有助于咨嗟单向数据流,平凡用于呈现动态生成的数据。

## 10、React中的情景是什么?它是如何使用的?

情景是 React 组件的中枢,是数据的源泉,必须尽可能约略。基本上情景是细目组件呈现和举止的对象。与props 不同,它们是可变的,并创建动态和交互式组件。不错通过 this.state() 访谒它们。

## 11、 React 中的箭头函数是什么?使用箭头函数的克己?

箭头函数(=>)是用于编写函数抒发式的简陋语法。这些函数允许正确绑定组件的高下文,因为在 ES6 中默许下不可使用自动绑定。使用高阶函数时,箭头函数相配有用。

克己:

- (1)语法纯粹:箭头函数的语法比传统的函数声明或函数抒发式更纯粹。

- (2)不绑定 this:箭头函数不会创建我方的 this 值。在箭头函数里面,this 与顽固 词法环境的 this 值调换。这管制了在事件处理器和回调函数中使用 this 的问题。

- (3)不绑定 arguments:箭头函数不会创建我方的 arguments 对象。它会从顽固 的词法环境中获得 arguments。

- (4)不不错行动构造函数:箭头函数不可用作构造函数,不可使用 new 关键字。

莫得 prototype 属性:由于箭头函数不可用作构造函数,是以它也莫得 prototype 属性。

- (5)不扶植 yield 关键字:箭头函数不可用作生成器函数。

总的来说,箭头函数提供了一种更纯粹、更约略的函数语法,至极合乎用于那些需要匿名函数的场景。

## 12、什么是高阶组件(HOC)?

高阶组件是重用组件逻辑的高等方法,是一种源于 React 的组件模式。 HOC 是自界说组件,在它之内包含另一个组件。它们不错接受子组件提供的任何动态,但不会修改或复制其输入组件中的任何举止。你不错以为 HOC 是“纯(Pure)”组件。

## 13、你能用HOC作念什么?

- 1、代码重用,逻辑和指点概括

- 2、渲染劫执

- 3、情景概括和旁边

- 4、Props 旁边

## 14、什么是纯组件?

纯(Pure) 组件是不错编写的最约略、最快的组件。它们不错替换任何唯有 render() 的组件。这些组件增强了代码的约略性和应用的性能。

##15、React 中 key 的首要性是什么?

key 用于识别独一的 Virtual DOM 元素过甚驱动 UI 的相应数据。它们通过回收 DOM 中面前悉数的元素来匡助 React 优化渲染。这些 key 必须是独一的数字或字符串,列表元素需要一个独一的key来匡助React识别哪些项仍是改变、添加或删除。这普及了渲染列表的性能,尤其是在进行列表项的重新排序或操作时。

## 16、什么是React 路由?

React 路由是一个构建在 React 之上的强劲的路由库,它有助于向应用按次添加新的屏幕和流。这使 URL 与网页上自大的数据保执同步。它谨慎咨嗟范例化的结构和举止,并用于拓荒单页 Web 应用。 React 路由有一个约略的API。

## 17、为什么 useState 复返的是数组而不是对象?

因为解构赋值的原因:

- 复返数组,不错对数组中的变量定名,代码看起来也比较干净。

- 复返对象,那就必须和复返的值同名,不可重叠使用了。

## 18、如何 已毕 React 懒加载?

React 16.6 之后,React 提供了 React.lazy 方法来扶植组件的懒加载。互助 webpack 的 code-splitting 性格,不错已毕按需加载。

```

import React, { Suspense } from 'react';

const OtherComponent = React.lazy(() => import('./OtherComponent'));

function MyComponent() {

return (

<Suspense fallback={

Loading...

}>

);

}

```

## 19、React VS Vue 有何辞别

> 0、设想理念

>

>- `React`: 更倾向于函数式编程念念想,宝贵组件的不可变性和单向数据流。

>- `Vue`: 纠合了反馈式编程和模板系统,用功于简化拓荒过程。

> 1、组件化款式不同

>

> - React 组件包含情景和举止,悉数组件分享一个情景树

> - Vue 每个组件王人有我方的情景和举止,而况不错很容易将数据和举止绑定在一齐

> 2、数据驱动款式不同

>

> - React 主要收受单向数据流,组件情景通过setState方法更新

> - Vue 扶植双向数据绑定(使用v-model指示),合乎于简化表单输入等场景。

> 3、模板语法不同

>

> - React 使用JSX(JavaScript XML),将标志话语与JavaScript逻辑混写。

> - Vue 使用基于HTML的模板语法,允许拓荒者使用纯HTML、CSS和JavaScript,扶植指示

> 4、人命周期不同

>

> - React 人命周期:开动化、更新、卸载

> - Vue 人命周期:创建、挂载、更新、就义

> 5、情景管制款式不同

>

> - React 情景管制平凡通过使用Context API或引入如Redux、MobX的库来已毕。

> - Vue 提供了Vuex作为官方的情景管意会决决策。

> 6、性能优化款式不同

>

> - React 性能优化:React.memo、shouldComponentUpdate

> - Vue 性能优化:keep-alive、v-if

> 7、反馈式系统

>

> - React: 通过setState和useState等API显式地触发UI更新。

> - Vue: 通过其反馈式系统自动跟踪依赖并在数据变化时更新视图。

> 8、类型扶植

>

> - React: 原生扶植JavaScript,但不错很好地与TypeScript纠合。

> - Vue: Vue 3提供了更好的TypeScript扶植。

## 20、React 组件获胜如何通讯

父组件 => 子组件:

- 1、Props

- 2、ref

子组件 => 父组件:

- 1、回调函数

- 2、事件冒泡机制

- 3、使用 useImperativeHandle 和 forwardRef,另一种方法是使用React的useImperativeHandle Hook 和 forwardRef 高阶组件。

伯仲组件之间:

- 1、期骗父组件通讯

不关系的组件之间:

- 1、Context

- 2、全局变量

- 3、 不雅察者模式

- 4、Redux/mobx/dva等

## 21、什么是 useReducer

useReducer 是 React Hooks 中的一个函数,用于管制和更新组件的情景。它不错被视为 useState 的一种替代决策,适用于处理更复杂的情景逻辑。比较于 useState,useReducer 在处理复杂情景逻辑时更有上风,因为它允许咱们将情景更新的逻辑封装在 reducer 函数中,并字据不同的动作类型实施相应的逻辑。这么不错使代码更具可读性和可咨嗟性,而况更容易进功绩态跟踪和调试。

## 22、React类式组件和函数式组件的辞别有哪些呢?

1、语法不同、设想念念想不同

函数式组件是函数式编程念念想,而类组件是面向对象编程念念想。面向对象编程将属性和方法封装起来,屏蔽许多细节,不利于测试。

2、人命周期、情景变量

- 类式组件:使用state对象界说情景变量,有诸如componmentDidMount、shouldComponentUpdate等人命周期钩子函数;

- 函数式组件:莫得this,使用一系列的内置hooks已毕对应的功能,比如使用useState创建情景变量,使用useEffect已毕近似于componmentDidMount、shouldComponentUpdate等人命周期钩子函数的功能。

3、复用性

- 类式组件:使用hoc(高阶组件)、render props已毕组件的逻辑复用、拓展组件的功能。

- 函数式组件:使用自界说hooks已毕组件的逻辑复用。

`端庄`:

- 幸免在 轮回/要求判断/嵌套函数 中调用 hooks,保证调用规定的牢固;

- 不可在 useEffect 中使用 useState,React 会报错领导;

- 类组件不会被替换或烧毁,不需要强制立异类组件,两种款式能并存

## 23、setState 是同步照旧异步?

`react 18 之前`

- 在Promise的情景更新、js原滋事件、setTimeout、setInterval..中是同步的。

- 在react的合成事件中,是异步的。

> setState的“异步”并不是说里面由异步代码已毕,其实自身实施的过程和代码王人是同步的,仅仅合成事件和钩子函数的调用规定在更新之前,导致在合成事件和钩子函数中没法立马拿到更新后的值,神气了所谓的“异步”,诚然不错通过第二个参数 setState(partialState, callback) 中的callback拿到更新后的终结。

`react 18 之后`

setState王人会证据为异步(即批处理)。

## 24、 React 服务端渲染(SSR)旨趣?

1、node server 接收客户端肯求,得到面前的肯求 url 旅途,然后在已有的路由表内查找到对应的组件,拿到需要肯求的数据,将数据作为 props、context或者store 神气传入组件

2、然后基于 react 内置的服务端渲染方法 renderToString() 把组件渲染为 html 字符串在把最终的 html 进行输出前需要将数据注入到浏览器端

3、浏览器脱手进行渲染和节点对比,然后实施完成组件内事件绑定和一些交互,浏览器重用了服务端输出的 html 节点,通盘过程收尾

## 25、常用的 React Hooks

- `情景钩子 (useState)`: 用于界说组件的 State,近似类界说中 this.state 的功能

- `useReducer`:用于管制复杂情景逻辑的替代决策,近似于 Redux 的 reducer。

- `人命周期钩子 (useEffect)`: 类界说中有许多人命周期函数,而在 React Hooks 中也提供了一个相应的函数 (useEffect),这里不错看作念- componentDidMount、componentDidUpdate和componentWillUnmount的纠合。

- `useLayoutEffect`:与 useEffect 近似,但在浏览器完成绘图之前同步实施。

- `useContext`: 获得 context 对象,用于在组件树中获得和使用分享的高下文。

- `useCallback`: 缓存回调函数,幸免传入的回调每次王人是新的函数实例而导致依赖组件重新渲染,具有性能优化的成果;

- `useMemo`: 用于缓存传入的 props,ag百家乐开奖幸免依赖的组件每次王人重新渲染;

- `useRef`: 获得组件的实在节点;用于在函数组件之间保存可变的值,而况不会激勉重新渲染。

- `useImperativeHandle`:用于自界说裸露给父组件的实例值或方法。

- `useDebugValue`:用于在拓荒者器用中自大自界说的钩子关系标签。

## 26、useEffect VS useLayoutEffect

`useEffect` 在 React 的渲染过程中是被异顺序用的,用于绝大无数场景;

`useLayoutEffect` 会在悉数的 DOM 变更之后同顺序用,主要用于处理 DOM 操作、支持神情、幸免页面闪耀等问题。

也正因为是同步处理,是以需要幸免在 useLayoutEffect 作念谋略量较大的耗时任务从而变成阻扰。

`useEffect` 是按照规定实施代码的,改变屏幕像素之后实施(先渲染,后改变DOM),当改变屏幕内容时可能会产生闪耀;

`useLayoutEffect` 是改变屏幕像素之前就实施了(会推迟页面自大的事件,先改变DOM后渲染),不会产生闪耀。useLayoutEffect老是比useEffect先实施。

## 27、React中的state和props的辞别

- `state`是组件里面的情景,不错被组件自身管制和更动。

- `props(属性)`是从父组件传递给子组件的数据,子组件不可修改接收到的props(单向数据流)。

调换点:

- 两者王人是 JavaScript 对象

- 两者王人是用于保存信息

- props 和 state 王人能触发渲染更新

辞别:

- props 是外部传递给组件的,而 state 是在组件内被组件我方管制的,一般在 constructor 中开动化

- props 在组件里面是不可修改的,但 state 在组件里面不错进行修改

- state 是多变的、不错修改

## 28、React中的诬捏DOM是什么

诬捏DOM是内存中的DOM示意。React使用诬捏DOM来优化DOM的更新过程。它通过比较新旧诬捏DOM的各别,并仅更新实践DOM中改变的部分,普及应用性能。

## 29、React 的人命周期方法有哪些 ?

- 1 `componentWillMount`:在渲染之前实施,用于根组件中的 App 级确立。

- 2 `componentDidMount`:在第一次渲染之后实施不错在这里作念AJAX肯求,DOM 的操作或情景更新以及建造事件监听器。

- 3 `componentWillReceiveProps`:在开动代render的时候不会实施,它会在组件接受到新的情景(Props)时被触发,一般用于业组件情景更新时子组件的重新渲染。

- 4 `shouldComponentUpdate`:细目是否更新组件。默许情况下,它复返true。如果细目在 state 或props 更新后组件不需要在重新渲染,则不错复返false,这是一个普及性能的方法。

- 5 `componentWillUpdate`:在shouldComponentUpdate复返 true 细目要更新组件之前实施。

- 6 `componentDidUpdate`:它主要用于更新DOM以反馈props或state更动。

- 7 `componentWillUnmount`:它用于取消任何的蚁合肯求,或删除与组件关联的悉数事件监听器。

## 30、为什么使用 React Hooks

Hooks 平凡扶植提真金不怕火和重用跨多个组件通用的有情景逻辑,而无需承担高阶组件或渲染 props 的处事。

Hooks 不错放浪地操作函数组件的情景,而不需要将它们鼎新为类组件。

幸免使用人命周期方法。

## 31、父子组件的useEffec哪个先实施?

先实施子组件再实施父组件。react保证了每次运行useffect的同期,DOM王人仍是更新结束。有一些场景,需要父组件的实施规定在子组件前边,不错推敲一下使用useLayoutEffect

## 32、什么是 Virtual DOM

- 1、Virtual Dom,实践上是以 JavaScript 对象神气存在的对 DOM 的形色。创建诬捏DOM辩论即是为了更好将诬捏的节点渲染到页面视图中,诬捏DOM对象的节点与实在DOM的属性逐个照料

- 2、更新更快

- 3、无法获胜更新 HTML

- 4、如果元素更新,则更新 JSX

- 5、DOM 操作相配约略

- 6、很少的内存破坏

## 33、Virtual DOM 处事过程有三个约略的要领:

- 1、每当底层数据发生改变时,通盘 UI 王人将在 Virtual DOM 形色中重新渲染。

- 2、然后谋略之前 DOM 示意与新示意的之间的各别。

- 3、完成谋略后,将只用实践更动的内容更新 real DOM。

## 34、受控组件和非受控组件的辞别

`受控组件`是React旁边的组件,input等表单输入框值不存在于 DOM 中,而是以咱们的组件情景存在。每当咱们想要更新值时,咱们就像往日一样调用setState。

`不受旁边组件`是您的表单数据由 DOM 处理,而不是React 组件,Refs 用于获得其面前值;

## 35、React 18 有哪些更新

- 并发模式

- 更新 render API

- 自动批处理

- Suspense 扶植 SSR

- startTransition

- useTransition

- useDeferredValue

- useId

- 提供给第三方库的 Hook

## 36、React事件机制和原生DOM事件流有什么辞别?

- react中的事件是绑定到document上头的,

- 而原生的事件是绑定到dom上头的,

- 因此相对绑定的方位来说,dom上的事件要优先于document上的事件实施

## 37、Redux 处事旨趣

Redux 是 React 的第三方情景管制库,创建于高下文API存在之前。它基于一个称为存储的情景容器的倡导,组件不错从该容器中作为 props 接收数据。更新存储区的独一方法是向存储区发送一个操作,该操作被传递到一个reducer中。reducer接收操作和面前情景,并复返一个新情景,触发订阅的组件重新渲染。

## 38、React-Router处事旨趣?react-router-dom有哪些组件

- 路由器组件,路由匹配组件,导航组件

- react-router 的依赖库history

- 1、BrowserHistory:用于扶植 HTML5 历史纪录 API 的当代 Web 浏览器(请参阅跨浏览器兼容性)

- 2、HashHistory:用于旧版Web浏览器\

- 3、MemoryHistory:用作参考已毕,也可用于非 DOM 环境,如 React Native 或测试

- BrowserHistory:pushState、replaceState

- HashHistory:location.hash、location.replace

## 39、React 如何作念到和 vue 中 keep-alive 的缓存成果

React Keep Alive 提供了 ,你必须把 放在 Provider 里面,而况每个 组件王人必须领有一个独一的 key

## 40、React 有哪几种创建组件的方法

React 有三种构建组件的款式

- 1、React.createClass

- 2、ES6 class

- 3、无情景函数

## 41、React diff 旨趣

- 把树形结构按照层级剖析,只比较同级元素。

- 列表结构的每个单位添加独一的 key 属性,约略比较。

- React 只会匹配调换 class 的 component(这里面的 class 指的是组件的名字)

- 归拢操作,调用 component 的 setState 方法的时候, React 将其标志为 dirty 到每一个事件轮回收尾, React 搜检悉数标志 dirty 的 component 重新绘图.

- 采用性子树渲染。拓荒东说念主员不错重写 shouldComponentUpdate 普及 diff 的性能。

## 42、为什么诬捏 dom 会普及性能

诬捏dom卓绝于在js和实在dom中间加了一个缓存,期骗dom diff算法幸免了莫得必要的dom操作,从而普及性能。

## 43、useCallback 和 useMemo 的使用场景

useCallback 和 useMemo 不错用来缓存函数和变量,普及性能,减少资源破坏。但并不是悉数的函数和变量王人需要用这两者来已毕,他也有对应的使用场景。

咱们知说念 useCallback 不错缓存函数体,在依赖项莫得变化时,前后两次渲染时,使用的函数体是一样的。它的使用场景是:

函数作为其他 hook 的依赖项时(如在 useEffect()中);

函数作为 React.memo()(或 shouldComponentUpdate )中的组件的 props;

主如果为了幸免重更生成的函数,会导致其他 hook 或组件的无谓要刷新。

useMemo 用来缓存函数实施的终结。如每次渲染时王人要实施一段很复杂的运算,或者一个变量需要依赖另一个变量的运算终结,就王人不错使用 useMemo()。

## 44、为什么 JSX 中 class 变成了 className?

因为在 JavaScript 里 class 是一个关键字,用来界说类。是以在 JSX 里不可再用 class 来示意 HTML 元素的类名了,就用 className 来代替,这么就不会和 JavaScript 的关键字冲破了。

## 45、什么是 React Diff,对比 Vue Diff?

`React Diff`

React 的 Diff 算法主如果基于两个假定:不同类型的元素会产生不同的树;拓荒东说念主员不错通过建造key属性来见知 React 哪些元素在不同的渲染之间是牢固的。在对比时,React 会对新旧诬捏 DOM 树进行深度优先遍历,分层比较节点,当发现节点类型不同期,获胜替换通盘子树,当节点类型调换且有key时,会进行更邃密的比较和更新。

`Vue Diff`#深度好文辩论#

Vue 的 Diff 算法在比较节点时,一样会优先判断节点类型是否调换。在处理列表时也依赖key属性。不外 Vue 的 Diff 算法在某些细节上与 React 有所不同,举例在静态节点和动态节点的处理上,Vue 会对静态节点进行优化,尽量减少对静态节点的重叠比较。

## 46、react合成事件

react的合成事件,屏蔽了浏览器自带的事件, 管制了浏览器的不兼容,

将事件绑定在document上,按照冒泡或者拿获的旅途去蚁合真确的事件处理函数,在此过程中会先处理原滋事件,然后当冒泡到document对象后 `平形势件 是绑定在实在dom上`

## 47、ajax 应该放在哪个人命周期?

在 `React 类组件`中,ajax 肯求平凡放在 componentDidMount 人命周期方法中。因为这个时候组件仍是挂载到 DOM 上,不错进行数据的获得操作,而况不会引起格外的渲染。

在 `React Hooks` 中,ajax 肯求平凡放在 useEffect hooks 中。

## 48、说一下React Hooks在平时拓荒中需要端庄的问题和原因?

React Hooks在使用时端庄事项:

- 1、只可在React函数中使用(函数式组件或自界说hook)。

- 2、只可在函数最外层调用hook,不可包括在if,for等语句中或者子函数中。

- 3、useState中存储的是援用类型的数据时,修改state时,一定要复返新的援用。

原因:

- Hooks专为函数组件的逻辑复用而设想是以只可用在函数式组件和自界说hooks。

- hooks在调用的时候,需要确保先后调用规定,一个规定出问题,会导致通盘按次的零星词语。

- 如果在useState中存储的是援用类型,更新时不更援用地址时的话,React会以为咱们莫得更新数据,则不进行组件更新。

## 49、请纠合React Router已毕React项辩论路由守卫

React已毕路由抑止的基本念念路照旧期骗Route的render函数,通过判断抑止要求来已毕不同的组件的跳转,从良友毕抑止

## 50、是否使用过React Portals,在什么场景下使用?

Portal提供了一种将子节点渲染到存在于父组件之外的DOM节点的优秀决策。

举例:

一个Portal的典型用例是当父组件有overflow:hidden或z-index神情时ag百家乐接口多少钱,需要子组件八成在视觉上“跳出”其容器。举例:对话框、悬浮卡以及领导框



Powered by ag百家乐开奖 @2013-2022 RSS地图 HTML地图