【上海校区】 专攻小班JS前端培训
当前位置:  主页 > 前端动态 >

前端培训班react面试题(整理的)

2019-04-25/02:04:17


1.redux 有什么缺点?

(1)组件需要的数据,必须由父组件传过来,而不是像 flux 中直接从 store 取。
(2)当组件的某个数据更新时,即使父组件不需要用到这个组件,父组件还是会重新 render,可能会有效率影响,或者需要写复杂的 shouldComponentUpdate 进行判断。


2.react中key有什么作用?

key是React中用于追踪哪些列表中元素被修改、删除或者被添加的辅助标识。在diff算法中,key用来判断该元素节点是被移动过来的还是新创建的元素,减少不必要的元素重复渲染。

u=877947876,1911317423&fm=26&gp=0.jpg

3. vue和react的区别是什么?

(1)react严格上针对的是mvc模式的view层,vue则是mvvm模式。
(2)操作dom的方式不同,vue使用的是指令操作dom,react是通过js进行操作。
(3)数据绑定不同,vue实现的是双向绑定,react的数据流动是单向的。
(4)react中state是不能直接改变的,需要使用setState改变。vue中的state不是必须的,数据主要是由data属性在vue对象中管理的。


4.react性能优化阶段函数是哪一个?

shouldComponentUpdate


5.在生命周期中的哪一步你应该发起 AJAX 请求?

 componentDidMount


QQ截图20190425145338.png

6.react性能优化方案

(1)使用 production 版本的react.js。
(2)使用key来帮助React识别列表中所有子组件的最小变化。


7.简述flux思想

Flux 的最大特点,就是数据的"单向流动"。

(1)用户访问 View
(2)View 发出用户的 Action
(3)Dispatcher 收到 Action,要求 Store 进行相应的更新
(4)Store 更新后,发出一个"change"事件
(5)View 收到"change"事件后,更新页面


8什么是 JSX

JSX 是 JavaScript 语法的一种语法扩展,并拥有 JavaScript 的全部功能。JSX 生产 React "元素",你可以将任何的 JavaScript 表达式封装在花括号里,然后将其嵌入到 JSX 中。在编译完成之后,JSX 表达式就变成了常规的 JavaScript 对象,这意味着你可以在 if 语句和 for 循环内部使用 JSX,将它赋值给变量,接受它作为参数,并从函数中返回它。


9.React中Element与Component的区别?

(1)ReactElement是描述屏幕上所见的内容的数据结构,是对于UI的对象的表述.典型的ReactElement就是利用JSX构建的声明式代码片段,然后被转化为createElement的调用组合.
(2)ReactComponent则是可以接收参数输入并且返回某个ReactElement的函数或者类.

timg (1).jpg


10.redux中间件
中间件提供第三方插件的模式,自定义拦截 action -> reducer 的过程。变为 action -> middlewares -> reducer 。这种机制可以让我们改变数据流,实现如异步 action ,action 过滤,日志输出,异常报告等功能。
常见的中间件:

redux-logger:提供日志输出
redux-thunk:处理异步操作
redux-promise:处理异步操作,actionCreator的返回值是promise