过五关!React高频面试题指南

  作者丨Michael Pautov

上犹网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、自适应网站建设等网站项目制作,到程序开发,运营维护。成都创新互联公司自2013年创立以来到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司

  译者 | 翟珂

  审校丨Noe

  谈到前端开发,ReactJS是目前最受欢迎的选择之一。下面列出的是最常问到的ReactJS面试题。

  从易到难,让我们看一下五个高频面试题。

为什么不使用Angular 而要使用React呢?

  使用React构建动态网络应用更简单,因为它编码少功能多,但对于JavaScript应用程序,代码往往会变得复杂。

  由于在React应用中使用了虚拟DOM,网络应用的速度会更快。虚拟DOM不会更新实际DOM中的所有组件,而是分析其先前的状态,只更新那些已经改变的组件。

  换句话说,每个React项目的构件可以通过使用组件创建新的构件来重新使用。为了节省开发时间,这些预建的组件都封装了自己的逻辑和控制,可以在整个程序中共享。

  React有单向的数据流。在React应用程序的设计过程中,我们通常将子组件分层在其父组件内。由于数据以单一渠道流动,故障排除也更简单,更容易确定程序中的问题所在。

  Facebook已经发布了一个浏览器插件,使我们能够更容易地调试React应用程序。由于这一改进,调试React网络应用变得更快、更简单了。

Redux thunks的作用是什么?

      使用Redux thunk,你可以建立返回函数而不是动作的动作创建器。通过使用delay函数,一个动作可以被延迟,直到满足一个特定的条件。你可以将两个存储方法getState和dispatch传递给内部函数。

  必须先使用applyMiddleware()方法:

import{ createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import rootReducer from './reducers/index';
const store = createStore(
rootReducer,
applyMiddleware(thunk)
);

React中的useState()是做什么的?

  useState() React Hook允许在功能组件中使用状态变量。这种方法对于动态控制DOM是非常好的。

  SetCounter方法是UseState(0)的第二个参数,它返回一个元组,count是第一个参数,setCounter方法是第二个参数。

..
const [count, setCounter] = useState(0);
const [otherStuffs, setOtherStuffs] = useState(..); ..
const setCount = () => {
setCounter(count + 1);
setOtherStuffs(..);
..
};

  要更新count,可以使用setCounter()方法。在这个例子中,SetCounter()是在setCount方法中使用的,这里可以采取各种不同的行动。当我们使用钩子时,我们可能使我们的代码更有用,如果不是绝对必要的话,可以避免使用基于类的组件。

useEffect钩子有用吗?

      useEffect React Hook可以用来在功能组件中产生边际效用。如果你的组件需要在渲染后或状态改变后进行某些操作,那么你可以使用useEffect来通知React。

  React会记住并在DOM更新性能完成后立即执行你提供的函数。除了更新页面标题之外,这个函数也可以用来从Web服务器上获取数据。

  useEffect钩子会在组件的第一次渲染和随后的每次更新后自动启用。完成后,DOM将被修改。

  用于React的钩子。可以用两个参数来使用useEffect:

  useEffect(callback[, dependencies])

  回调1代表包含边际效用的函数,它在DOM修改后立即被调用。第二个参数的依赖数组可以是你想要的任何东西。只要渲染之间的依赖关系改变,useEffect()就会被调用。

import { useEffect } from 'react';
function WelcomeGreetings({ name }) {
const msg = `Hi, ${name}!`;
useEffect(() => {
document.title = `Welcome to you ${name}`;
}, [name]);
return
{msg}
;
}

  边际效用是指由于前面的代码而发生的任何事情,但并不直接修改。因此,useEffect现在包含一个用于更新文档标题的回调。

       如果你想避免每次使用useEffect(callback, [name])时,WelcomeGreetings组件的演示文稿标题出现变化,你可能需要指定名称作为useEffect的效果依赖。

增强React性能的一些方法

  • 使用useMemo函数()
  • 这个React钩子可以用来缓存CPU密集型的任务。
  • 对于某些React应用程序,持续使用CPU密集型函数可能会导致组件重新渲染时的延迟渲染。useMemo()钩子可用于缓存此类程序。只有必要时,才使用CPU密集型方法useMemo()。
  • 保持一个合适的状态
  • 你希望在可行的情况下让状态尽可能地接近你想要的位置。
  • React应用程序的父组件可能包括大量冗余的状态,这使得理解和管理代码更加困难。当有众多状态时,整个事情就会重演。
  • 最好的办法是隔离那些对父组件并不关键的状态。
  • 摆脱迟缓加载。
  • 懒惰加载将网络应用性能问题的风险降到最低,用这种技术加快React应用的启动速度。

  原文链接:https://hackernoon.com/top-5-react-interview-questions-in-2022

译者介绍

  翟珂,社区编辑,目前在杭州从事软件研发工作,做过电商、征信等方面的系统,享受分享知识的过程,充实自己的生活。

网站名称:过五关!React高频面试题指南
网页链接:http://www.hantingmc.com/qtweb/news0/228450.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联