react上课提问

简介: react上课提问

1、class组件和类组件区别?

2、useMemo和usecallback如何提升性能

3、React-router-dom V5和V6有什么区别?

4、React中Hooks及含义

5、React的生命周期有哪些?

6、什么是高阶组件?如何使用?用过哪些高阶组件

7、React中受控组件和非受控组件

8、什么是promise?

Promise 是一种用于异步编程的 JavaScript 对象。它表示一个尚未完成的操作,但在未来的某个时间点会完成,可能会成功返回结果,也可能返回失败的原因。 Promise 将异步操作的结果与成功和失败处理程序分离开来,可以有效解决 JavaScript 中异步编程带来的回调地狱问题。

Promise 对象有三种状态:

  • 等待(pending):初始状态,即操作尚未完成。
  • 已完成(fulfilled):操作成功完成,返回了结果。
  • 已拒绝(rejected):操作失败,返回失败的原因。

Promise 对象有两个核心方法:

  • then() 方法:当 Promise 对象进入已完成状态时调用,成功时返回结果,失败时返回一个错误对象。
  • catch() 方法:当 Promise 对象进入已拒绝状态时调用,可以捕获错误并进行处理。

Promise 对象的优点有:

  • 可以解决回调地狱问题,使异步代码更易于理解和维护。
  • 可以有效地处理并行操作,避免了层层嵌套的回调函数。
  • 可以使用链式调用来组合多个异步操作,代码更加简洁。

Promise 对象的缺点有:

  • 无法取消 Promise,一旦创建就会执行,无法中途取消。
  • 如果不正确处理 Promise 中的错误,会导致程序崩溃或无法调试。
  • 对于某些复杂的异步场景,Promise 也无法完全满足需求。

简单封装一个promise:

function getJson(url) {
  return new Promise((resolve, reject) => {
    const xhr = new XMLHttpRequest()
    xhr.open('GET', url)
    xhr.onreadystatechange = function() {
      if (this.readyState === 4) {
        if (this.status === 200) {
          resolve(JSON.parse(this.responseText))
        } else {
          reject(new Error(this.statusText))
        }
      }
    }
    xhr.onerror = function() {
      reject(new Error('Network Error'))
    }
    xhr.send()
  })
}

9、Promise和async/await有什么区别?

10、虚拟DOM和真实DOM的区别

11、React生命周期的过程

12、state和props有什么区别?

13、React组件通信的流程

14、React中Hooks的理解及使用

15、React中setState的运行机制的理解?

16、说说你对React中事件机制的理解

17、Js的数据类型和内存存储区别

18、Js中数据类型判断的方法有哪些?

19、说说你对Vue中生命周期的理解?

生命周期就是:从vue实例产生开始到vue实例销毁这个时间所经历的过程。

生命周期函数都有:

beforeCreate():创建实例前执行

created():创建实例完成后执行

beforeMount():组件挂载前

mounted():组件挂载到实例上后

beforeUpdate():数据发生改变,更新之前

updated():数据发生更新之后

beforeDestroy():组件实例销毁前

destroyed():组件实例销毁后

新增:

activated():keep-alive缓存组件激活时

deactivated():keep-alive缓存组件停用时

errorCaptrued():捕获一个来自子孙组件的错误时调用

20、Vue2的响应式原理是什么?

vue中响应式原理:核心是通过es5的object.defindeProperty进行数据劫持,然后使用get和set进行数据的获取和设置,这时data中生命的属性会被添加到get和set中,当读取data中的数据时,会自动调用get方法,当数据进行修改时,会自动调用set方法,去监听检测数据的变化,同时通知观察者wacher,观察者会自动重新触发render组件(注:子组件不会重新渲染),

21、说说你对盒子模型的理解?

22、说说你对BFC的理解?

23、说说你对Redux以及Redux中间件的理解?

相关文章
|
存储 C语言
大端存储和小端存储
1.大小端字节序 2.大端存储 3.小端存储 4.为什么会有大小端存储模式之分? 5.如何判断当前机器是大端存储还是小端存储 方法1 方法2
4112 0
|
SQL 监控 Oracle
Oracle 数据库报错:ORA-12592问题排查过程
Oracle 数据库报错:ORA-12592问题排查过程
4597 0
|
存储 Java Apache
开发指南061-nexus权限管理
平台后台服务的核心是组件,管理组件的软件有
|
存储 JSON 小程序
微信小程序入门之新建并认识小程序结构
微信小程序入门之新建并认识小程序结构
210 1
|
7月前
|
开发工具 C++ git
五分钟看懂推送本地项目到 GitHub新手菜鸡
五分钟看懂推送本地项目到 GitHub新手菜鸡
|
前端开发 安全 JavaScript
Flask 中的跨域难题:定义、影响与解决方案深度解析
Flask 中的跨域难题:定义、影响与解决方案深度解析
552 0
|
安全 JavaScript 前端开发
kotlin开发安卓app,JetPack Compose框架,给webview新增一个按钮,点击刷新网页
在Kotlin中开发Android应用,使用Jetpack Compose框架时,可以通过添加一个按钮到TopAppBar来实现WebView页面的刷新功能。按钮位于右上角,点击后调用`webViewState?.reload()`来刷新网页内容。以下是代码摘要:
zdl
|
12月前
|
消息中间件 运维 大数据
大数据实时计算产品的对比测评:实时计算Flink版 VS 自建Flink集群
本文介绍了实时计算Flink版与自建Flink集群的对比,涵盖部署成本、性能表现、易用性和企业级能力等方面。实时计算Flink版作为全托管服务,显著降低了运维成本,提供了强大的集成能力和弹性扩展,特别适合中小型团队和业务波动大的场景。文中还提出了改进建议,并探讨了与其他产品的联动可能性。总结指出,实时计算Flink版在简化运维、降低成本和提升易用性方面表现出色,是大数据实时计算的优选方案。
zdl
505 56
|
12月前
|
前端开发
create-react-app 如何使用 less/sass 和 react-css-modules?
本文详细介绍了在 create-react-app 项目中如何使用 less/sass 和 react-css-modules 来管理和应用样式。首先,通过安装相应依赖并配置 webpack 支持 less/sass;接着,介绍如何使用这些预处理器编写样式;最后,讲解了如何配置和使用 react-css-modules 实现样式的模块化管理,以及如何结合使用 less/sass 和 react-css-modules 提高开发效率和代码质量。
275 3
|
安全 搜索推荐 vr&ar
脑机接口:人类认知与技术的深度融合
【9月更文挑战第13天】脑机接口(BMI)技术正快速发展,成为连接人类认知与高科技领域的桥梁。本文从定义、原理、应用及挑战等方面全面探讨了这一前沿技术。脑机接口通过测量大脑活动,转化为外部设备的控制信号,已在疾病治疗、运动功能恢复、认知改善及AR/VR等领域展现巨大潜力。然而,技术难度、伦理安全及成本问题仍需克服。未来,随着技术进步,脑机接口有望更广泛地应用于日常生活,引领科技新方向。