首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

React常见面试题

JSX 使用js的形式来写html代码 jsx本身是语法糖,无法直接被浏览器解析,需要通过babel或者typescript来转换成 js。...,所有不能在不同hooks调用中使用判断条件,因为if导致顺序不正确,从而导致报错 //错误示例 function App(){ const [name,setName]=useState('xz')...useEffect可以让你在函数组件中执行副使用(数据获取,设置订阅,手动更改React组件中的DOM)操作 默认情况下每次函数加载完,都会执行(不要在此修改state,避免循环调用),useEffect...; 如果渲染的组件比较大,js执行会长时间占有主线程,导致页面响应度变差,使得react在动画,手势等应用中效果比较差; 实现过程及原理(核心理念就是:time slicing): 拆分:把渲染过程进行拆分成多个小任务...react事件与原生事件最好不要混用 原因: 原生事件如果执行 stopProagation 方法,则会导致其他 react 事件失效,因为所有元素的事件将无法冒泡到 document上 # react-router

4.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

SSR React同构渲染改造

html的形式返回给用户浏览器进行展示,由于在填充数据时已经将原有javascript的功能直接在后端实现,所以在服务器性能比较稳定的前提下,用户侧可以很快看到整个完整页面加载出来,使用体验很好,加之搜索引擎都是基于爬虫来进行收录...首屏加载完毕,在请求其他js、css之前,已经展示了部分内容的,就是SSR,反之白屏的则是CSR,现在大部分基于React、Vue等框架做出来的都是CSR。...但是也遇到某些问题,例如有些电脑上可能因为9001/7001等端口被系统应用占用,导致代码无法正常运行并报错。...在代码线上给view文件夹里加上.gitkeep文件 3、SSR首页加载时间过长,超过了3秒 在首页将所有文章都拉取到Node服务中,发现由于文章主体内容过多导致首页加载时间太慢 修改后台接口增加参数,...} ) 7、分析打包的文件,发现moment库很大 在打包出来里面,moment在gzip下也有50+K 仔细可以看到是引入了大部分语言包导致,考虑到后续语言包可能引入,建议最好解决方案是在打包中排除

34210

前端面试中小型公司都考些什么

当然不是,它在内部实现了 React.createElement 无法做到的性能优化和简化。在一定情况下,它可能略微改善编译输出内容的大小2....PS:按需加载导致大量重绘,影响渲染性能a) LazyLoadb) 滚屏加载c) 通过Media Query加载2.6 预加载大型重资源页面(如游戏)可使用增加Loading的方法,资源加载完成后再显示页面...2.9 避免重定向重定向影响加载速度,所以在服务器正确设置避免重定向。...三、脚本执行优化脚本处理不当阻塞页面加载、渲染,因此在使用时需当注意CSS写在头部,JavaScript写在尾部或异步避免图片和iFrame等的空Src,空Src重新加载当前页面,影响速度和效率。...长轮询的缺点在于,连接挂起也导致资源的浪费。SSE 的基本思想: 服务器使用流信息向服务器推送信息。严格地说,http 协议无法做到服务器主动推送信息。

77860

React.js基础知识总结一

WEB服务[端口号默认是3000],webpack帮我们自动打开浏览器,并且展示我们的页面,并且能够监听我们代码的改变,如果代码改变了,webpack自动重新编译,并且刷新浏览器来完成重新渲染) build.... $ set HTTPS=true&&npm start 开启HTTPS协议模式(设置环境变量HTTPS的值) $ set PORT=63341 修改端口号 =====================...=============== react & react-dom 【渐进式框架】 一种最流行的框架设计思想,一般框架中都包含很多内容,这样导致框架的体积过于臃肿,拖慢加载的速度。...JSXREACT虚拟元素变为真实的dom CONTAINER:容器,我们想把元素放到页面中的哪个容器中 CALLBACK:当把内容放到页面中呈现触发的回调函数 JSXREACT独有的语法 JAVASCRIPT...,但是支持三元运算符 3.循环数组创建JSX元素(一般都基于数组的MAP方法完成迭代),需要给创建的元素设置唯一的KEY值(当前本次循环内唯一即可) 4.只能出现一个根元素 5.给元素设置样式类用的是className

1.8K30

React 学习笔记(基础篇)

JSX JSX 中插入 name 的变量,将变量包裹在大括号中,也可以在大括号中使用任何有效的 JavaScript 表达式 JSX 也是一个表达式,在编译之后,JSX 表达式会被转换成 js 函数调用...,并且对其取值后得到的 JavaScript 对象 这就意味着我可以在 if 语句和 for 循环语句中使用 JSX,将 JSX 赋值给一个变量,将 JSX 作为参数,以及函数返回等等 JSX 指定属性的时候...(element, document.getElementById('root')); React 元素是不可变元素,一旦被创建,就无法更改它的子元素或者属性。...接受任意的入参(props),并返回用于描述页面展示内容的 React 元素。...,而不进行任何渲染 列表 & key 渲染多个组件:通过使用 {} 在 JSX 内构建一个元素集合 关于 key 值的设置 当列表项目的顺序可能变化的时候,我们不建议使用索引当做 key 值,这样导致性能变差

1.5K10

开始学习React js

,你完全可以用React去开发一个真正的Web Component; React不是一个新的模板语言,JSX只是一个表象,没有JSXReact也能工作。...这里大家可能奇怪,为什么script的type是text/jsx,这是因为 React 独有的 JSX 语法,跟 JavaScript 不兼容。...凡是使用 JSX 的地方,都要加上 type="text/jsx" 。 其次,React 提供两个库: react.js 和 JSXTransformer.js ,它们必须首先加载。...JSX 允许直接在模板插入 JavaScript 变量。如果这个变量是一个数组,则会展开这个数组的所有成员,代码如下: ? 显示结果如下: ?...上面代码在hello组件加载以后,通过 componentDidMount 方法设置一个定时器,每隔100毫秒,就重新设置组件的透明度,从而引发重新渲染。

7.1K60

React组件(推荐,差代码) 原

2.react组件化 ? ? ? ? 利用函数思想渲染页面,复杂组件由简单组件组成 做一个hello world组件: ? ? jsx对象 ? 增加jsx文件,通过react解析,然后dom挂载 ?...在react下class是关键字,应该使用className react下设计逻辑和页面逻辑的整合: 把界面设计逻辑封装成一个json对象,把这个对象放在react空间的代码块里面 ?...color变量属性 ? 字空间的color先通过父属性传递 ? ? 修改可变,空间可重用 5.组件属性的传递 ? ? react不能直接从1到5,属性也不能反向传递(子到父) ?...说明组件被框架加载页面了 ? 页面绘制 ? ?...增加页面样式 ? ? 创建子组件Counter,增加display显示属性 ? 传递值0 ? ? 变量初始化为0 ? 增加increase函数 ? 添加函数 ? ?

2.4K20

一看就懂的ReactJs入门教程(精华版)

html模板如下(js路径改成自己的): 这里大家可能奇怪,为什么script的type是text/jsx,这是因为 React 独有的 JSX 语法,跟 JavaScript 不兼容。...凡是使用 JSX 的地方,都要加上 type="text/jsx" 。 其次,React 提供两个库: react.js 和 JSXTransformer.js ,它们必须首先加载。...object nextState):组件判断是否重新渲染时调用 下面来看一个例子: 上面代码在hello组件加载以后,通过 componentDidMount 方法设置一个定时器,每隔100毫秒,...就重新设置组件的透明度,从而引发重新渲染。...5、变量名用{}包裹,且不能加双引号。 七、参考资料 React中文文档 React入门实例教程 颠覆式前端UI开发框架:React

6.2K70

【腾讯课堂】基于Kbone使用React同构小程序开发实践总结

在小程序端我们可以使用 web-view 嵌入 H5,但该方案加载耗时以及无法使用微信特有的能力(例如:获取微信用户绑定的手机号,沉浸式状态栏),适逢 Kbone 已支持 React 同构,因此我们针对该页面尝试基于...此外,这种方案实际运行时并非 “真 React ”,因此对于跟进 React 特性来说,无法做到与官方同步。...和 @babel/plugin-transform-modules-commonjs 插件,这两个插件在 h5 中比较常见,但在这里 @babel/plugin-transform-runtime 导致小程序开发者工具运行报错...需要注意的是有副作用的库,有些库中会除了 export 方法外会有一些自执行逻辑,若是其中逻辑涉及到 wx API,或 Web API,导致另一端上抛出异常,需要注意分别在两端中剔除无关的库。...其中背景图是当前需求引入的,我们将背景图上传到cdn上,并设置图片加载失败时的背景色,避免将图片资源打包入 css 中。

66720

你需要的react面试高频考察点总结

属性 to: string:重定向的 URL 字符串属性 to: object:重定向的 location 对象属性 push: bool:若为真,重定向操作将会把新地址加入到访问历史记录里面,并且无法回退到前面的页面...使用效果: useEffect是按照顺序执行代码的,改变屏幕像素之后执行(先渲染,后改变DOM),当改变屏幕内容时可能产生闪烁;useLayoutEffect是改变屏幕像素之前就执行了(推迟页面显示的事件...React必须使用JSX吗?React 并不强制要求使用 JSX。当不想在构建环境中配置有关 JSX 编译时,不在 React 中使用 JSX 更加方便。...,页面无法加载出来。...todos.map((todo) => {todo.text} )};在集合中添加和删除项目时,不使用键或将索引用作键导致奇怪的行为

3.6K30

React 搭建开发环境

webstorm有文件缓存的功能,在编辑完毕保存之后并不会实时的更新磁盘文件,这样的就导致webpack的开发环境无法同步更新文件。...--save-dev 在前面介绍webpack的时候已经介绍了加载器的概念,这里需要额外安装babel用于对reactjsx风格的编码进行解析,babel除了jsx外还可以解析es6等。...这里需要注意的是解析的优先级的倒序的,即先解析‘react’。 然后我们添加编码内容(所有的例子都分别实现了jsx规范和es2015规范): index.html: <!.../component1.jsx' /*切记,大写是变量小写是标签*/ import style from '../../.....然后在demo页面按F12打开开发人员工具,会发现多了一个React栏目。选择这个栏目后,显示出React组件的效果。

1.5K10

React由0到1

webstorm有文件缓存的功能,在编辑完毕保存之后并不会实时的更新磁盘文件,这样的就导致webpack的开发环境无法同步更新文件。...react-dom --save-dev     在前面介绍webpack的时候已经介绍了加载器的概念,这里需要额外安装babel用于对reactjsx风格的编码进行解析,babel除了jsx外还可以解析...这里需要注意的是解析的优先级的倒序的,即先解析‘react’。     然后我们添加编码内容(所有的例子都分别实现了jsx规范和es2015规范):     index.html: <!.../component1.jsx' /*切记,大写是变量小写是标签*/ import style from '../../.....然后在demo页面按F12打开开发人员工具,会发现多了一个React栏目。选择这个栏目后,显示出React组件的效果。

75430
领券