发布网友 发布时间:2022-04-20 04:07
共7个回答
懂视网 时间:2022-05-14 18:50
本篇文章给大家带来的内容是关于(收藏)react常用面试题的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。下面是一个常用的关于 React 的面试问题列表:
无论作为一个面试者,或者招聘官,下面这些问题都可以去参考
务必收藏
React 会创建一个虚拟 DOM(virtual DOM)。当一个组件中的状态改变时,React 首先会通过 "diffing" 算法来标记虚拟 DOM 中的改变,第二步是调节(reconciliation),会用 diff 的结果来更新 DOM。
只需查看 render 函数就会很容易知道一个组件是如何被渲染的
JSX 的引入,使得组件的代码更加可读,也更容易看懂组件的布局,或者组件之间是如何互相引用的
支持服务端渲染,这可以改进 SEO 和性能
易于测试
React 只关注 View 层,所以可以和其它任何框架(如Backbone.js, Angular.js)一起使用
展示组件关心组件看起来是什么。展示专门通过 props 接受数据和回调,并且几乎不会有自身的状态,但当展示组件拥有自身的状态时,通常也只关心 UI 状态而不是数据的状态。
容器组件则更关心组件是如何运作的。容器组件会为展示组件或者其它容器组件提供数据和行为(behavior),它们会调用 Flux actions
,并将其作为回调提供给展示组件。容器组件经常是有状态的,因为它们是(其它组件的)数据源。
类组件不仅允许你使用更多额外的功能,如组件自身的状态和生命周期钩子,也能使组件直接访问 store 并维持状态
当组件仅是接收 props,并将组件自身渲染到页面时,该组件就是一个 '无状态组件(stateless component)',可以使用一个纯函数来创建这样的组件。这种组件也被称为哑组件(dumb components)或展示组件
State 是一种数据结构,用于组件挂载时所需数据的默认值。State 可能会随着时间的推移而发生突变,但多数时候是作为用户事件行为的结果。
Props(properties 的简写)则是组件的配置。props 由父组件传递给子组件,并且就子组件而言,props 是不可变的(immutable)。组件不能改变自身的 props,但是可以把其子组件的 props 放在一起(统一管理)。Props 也不仅仅是数据--回调函数也可以通过 props 传递。
componentWillMount -- 多用于根组件中的应用程序配置
componentDidMount -- 在这可以完成所有没有 DOM 就不能做的所有配置,并开始获取所有你需要的数据;如果需要设置事件监听,也可以在这完成
componentWillReceiveProps -- 这个周期函数作用于特定的 prop 改变导致的 state 转换
shouldComponentUpdate -- 如果你担心组件过度渲染,shouldComponentUpdate 是一个改善性能的地方,因为如果组件接收了新的 prop, 它可以阻止(组件)重新渲染。shouldComponentUpdate 应该返回一个布尔值来决定组件是否要重新渲染
componentWillUpdate -- 很少使用。它可以用于代替组件的 componentWillReceiveProps 和 shouldComponentUpdate(但不能访问之前的 props)
componentDidUpdate -- 常用于更新 DOM,响应 prop 或 state 的改变
componentWillUnmount -- 在这你可以取消网络请求,或者移除所有与组件相关的事件监听器
在 React 组件中,应该在 componentDidMount 中发起网络请求。这个方法会在组件第一次“挂载”(被添加到 DOM)时执行,在组件的生命周期中仅会执行一次。更重要的是,你不能保证在组件挂载之前 Ajax 请求已经完成,如果是这样,也就意味着你将尝试在一个未挂载的组件上调用 setState,这将不起作用。在 componentDidMount 中发起网络请求将保证这有一个组件可以更新了。
在 HTML 中,类似 <input>, <textarea> 和 <select> 这样的表单元素会维护自身的状态,并基于用户的输入来更新。当用户提交表单时,前面提到的元素的值将随表单一起被发送。但在 React 中会有些不同,包含表单元素的组件将会在 state 中追踪输入的值,并且每次调用回调函数时,如 onChange 会更新 state,重新渲染组件。一个输入表单元素,它的值通过 React 的这种方式来控制,这样的元素就被称为"受控元素"。
Refs 可以用于获取一个 DOM 节点或者 React 组件的引用。何时使用 refs 的好的示例有管理焦点/文本选择,触发命令动画,或者和第三方 DOM 库集成。你应该避免使用 String 类型的 Refs 和内联的 ref 回调。Refs 回调是 React 所推荐的。
高阶组件是一个以组件为参数并返回一个新组件的函数。HOC 运行你重用代码、逻辑和引导抽象。最常见的可能是 Redux 的 connect 函数。除了简单分享工具库和简单的组合,HOC最好的方式是共享 React 组件之间的行为。如果你发现你在不同的地方写了大量代码来做同一件事时,就应该考虑将代码重构为可重用的 HOC。
练习
写一个反转其输入的 HOC
写一个从 API 提供数据给传入的组件的 HOC
写一个实现 shouldComponentUpdate 来避免 reconciliation 的 HOC
写一个通过 React.Children.toArray 对传入组件的子组件进行排序的 HOC
作用域安全:在箭头函数之前,每一个新创建的函数都有定义自身的 this 值(在构造函数中是新对象;在严格模式下,函数调用中的 this 是未定义的;如果函数被称为“对象方法”,则为基础对象等),但箭头函数不会,它会使用封闭执行上下文的 this 值。
简单:箭头函数易于阅读和书写
清晰:当一切都是一个箭头函数,任何常规函数都可以立即用于定义作用域。开发者总是可以查找 next-higher 函数语句,以查看 this 的值
因为 this.props 和 this.state 的更新可能是异步的,不能依赖它们的值去计算下一个 state。
this
,还有其它方式吗你可以使用属性初始值设定项(property initializers)来正确绑定回调,create-react-app 也是默认支持的。在回调中你可以使用箭头函数,但问题是每次组件渲染时都会创建一个新的回调。
在组件的 render 方法中返回 null 并不会影响触发组件的生命周期方法
Keys 会有助于 React 识别哪些 items 改变了,被添加了或者被移除了。Keys 应该被赋予数组内的元素以赋予(DOM)元素一个稳定的标识,选择一个 key 的最佳方法是使用一个字符串,该字符串能惟一地标识一个列表项。很多时候你会使用数据中的 IDs 作为 keys,当你没有稳定的 IDs 用于被渲染的 items 时,可以使用项目索引作为渲染项的 key,但这种方式并不推荐,如果 items 可以重新排序,就会导致 re-render 变慢。
在 super() 被调用之前,子类是不能使用 this 的,在 ES2015 中,子类必须在 constructor 中调用 super()。传递 props 给 super() 的原因则是便于(在子类中)能在 constructor 访问 this.props。
JSX 是 JavaScript 语法的一种语法扩展,并拥有 JavaScript 的全部功能。JSX 生产 React "元素",你可以将任何的 JavaScript 表达式封装在花括号里,然后将其嵌入到 JSX 中。在编译完成之后,JSX 表达式就变成了常规的 JavaScript 对象,这意味着你可以在 if 语句和 for 循环内部使用 JSX,将它赋值给变量,接受它作为参数,并从函数中返回它。
Question:
const element = ( <h1 className="greeting"> Hello, rdhub.cn! </h1> );
Answer:
const element = React.createElement( 'h1', {className: 'greeting'}, 'Hello, rdhub.cn!' );
Children
在JSX表达式中,一个开始标签(比如<a>)和一个关闭标签(比如</a>)之间的内容会作为一个特殊的属性props.children被自动传递给包含着它的组件。
这个属性有许多可用的方法,包括 React.Children.map,React.Children.forEach, React.Children.count, React.Children.only,React.Children.toArray。
State 和 props 类似,但它是私有的,并且完全由组件自身控制。State 本质上是一个持有数据,并决定组件如何渲染的对象。
当你想去配置 webpack 或 babel presets。
Redux 的基本思想是整个应用的 state 保持在一个单一的 store 中。store 就是一个简单的 javascript 对象,而改变应用 state 的唯一方式是在应用中触发 actions,然后为这些 actions 编写 reducers 来修改 state。整个 state 转化是在 reducers 中完成,并且不应该有任何副作用。
Store 是一个 javascript 对象,它保存了整个应用的 state。与此同时,Store 也承担以下职责:
允许通过 getState() 访问 state
运行通过 dispatch(action) 改变 state
通过 subscribe(listener) 注册 listeners
通过 subscribe(listener) 返回的函数处理 listeners 的注销
Actions 是一个纯 javascript 对象,它们必须有一个 type 属性表明正在执行的 action 的类型。实质上,action 是将数据从应用程序发送到 store 的有效载荷。
一个 reducer 是一个纯函数,该函数以先前的 state 和一个 action 作为参数,并返回下一个 state。
Redux thunk 是一个允许你编写返回一个函数而不是一个 action 的 actions creators 的中间件。如果满足某个条件,thunk 则可以用来延迟 action 的派发(dispatch),这可以处理异步 action 的派发(dispatch)。
一个纯函数是一个不依赖于且不改变其作用域之外的变量状态的函数,这也意味着一个纯函数对于同样的参数总是返回同样的结果。
热心网友 时间:2022-05-14 15:58
1、结构化面试,根据特定职位的胜任特征要求,遵循固定的程序,采用专门的题库、评价标准和评价方法,通过考官小组与应考者面对面的言语交流等方式,评价应考者是否符合招聘岗位要求的人才测评方法。
2、无领导小组讨论,指由一组应试者组成一个临时工作小组,讨论给定的问题,并做出决策。由于这个小组是临时拼凑的,并不指定谁是负责人,目的就在于考察应试者的表现。
3、半结构化面试,是指面试构成要素中有的内容作统一的要求,有的内容则不作统一的规定,也就是在预先设计好的试题(结构化面试)的基础上,面试中主考官向应试者又提出一些随机性的试题。
4、情景面试又叫情景模拟面试或情景性面试等,面试方法之一。在情景性面试中,面试题目主要是一些情景性的问题,即给定一个情景,看应聘者在特定的情景中是如何反应的。在经验性面试中,主要是问一些与应聘者过去的工作经验有关的问题。
5、问卷面试,就是运用问卷形式,将所要考查的问题列举出来,由主考官根据应聘者面试中的行为表现对其特征进行评定,并使其量化。它是面试中常用的一种方法,它的优点在于把定性考评与定量考评相结合,具有可操作性和准确性。
结构化面试的特点:
1、根据工作分析的结构设计面试问题。
在结构化面试中,面试的目的是要将对职位更合适的应考者选拔出来, 这种面试方法需要进行深入的工作分析,以明确在工作中哪些事例体现良好的绩效,哪些事例反映了较差的绩效,由执行人员对这些具体事例进行评价,并建立题库。
结构化面试测评的要素涉及到知识、能力、品质、动机、气质等,尤其是有关职责和技能方面的具体问题,更能够保证筛选的成功率。
2、向所有的应聘者采取相同的测试流程。
在结构化面试中,不仅面试题目对报考同一职位的所有应考者相同,而且面试的指导语、面试时间、面试问题的呈现顺序、面试的实施条件都应是相同的。这就使得所有的应考者在几乎完全相同的条件下接受面试,保证面试过程的公正、公平。
热心网友 时间:2022-05-14 17:16
这个常见面试的种类不是5种是很多种,但是最常见的呢,也就是说让你自己所谓的口头的做一个自我检,自我介介绍这方面的内容,看你的口才怎么样。热心网友 时间:2022-05-14 18:51
答:(1)面试是人员选拔中最传统也是最重要的一种方法。狭义地讲,面试就是面谈的意思,指通过主试者与应聘者双方面对面的观察、交流等双向沟通方式,了解应聘者素质、能力与求职动机的一种选拔技术。广义地讲,面试是王试者通过与应聘者直接交谈或者置应热心网友 时间:2022-05-14 20:42
常见面试的种类面试的有很多种有鄙视有大变有了观察有很多种都是认识选拔的方法热心网友 时间:2022-05-14 22:50
具体介绍如下。
1、结构化面试,根据特定职位的胜任特征要求,遵循固定的程序,采用专门的题库、评价标准和评价方法,通过考官小组与应考者面对面的言语交流等方式,评价应考者是否符合招聘岗位要求的人才测评方法。
2、无领导小组讨论,指由一组应试者组成一个临时工作小组,讨论给定的问题,并做出决策。由于这个小组是临时拼凑的,并不指定谁是负责人,目的就在于考察应试者的表现。
3、半结构化面试,是指面试构成要素中有的内容作统一的要求,有的内容则不作统一的规定,也就是在预先设计好的试题(结构化面试)的基础上,面试中主考官向应试者又提出一些随机性的试题。
4、情景面试又叫情景模拟面试或情景性面试等,面试方法之一。在情景性面试中,面试题目主要是一些情景性的问题,即给定一个情景,看应聘者在特定的情景中是如何反应的。在经验性面试中,主要是问一些与应聘者过去的工作经验有关的问题。
5、问卷面试,就是运用问卷形式,将所要考查的问题列举出来,由主考官根据应聘者面试中的行为表现对其特征进行评定,并使其量化。它是面试中常用的一种方法,它的优点在于把定性考评与定量考评相结合,具有可操作性和准确性。
热心网友 时间:2022-05-15 01:15
1、结构化面试,根据特定职位的胜任特征要求,遵循固定的程序,采用专门的题库、评价标准和评价方法,通过考官小组与应考者面对面的言语交流等方式,评价应考者是否符合招聘岗位要求的人才测评方法。结构化面试是指面试的内容、形式、程序、评分标准及结果的合成与分析等构成要素,按统一制定的标准和要求进行的面试。