前端analysis | 3w & 1h

《react》-reactjs进阶答疑

2021-08-11

react是什么?

定位于声明UI层的一个数据绑定框架,不如angular那样开箱即用的很多功能
angular内置如下大概功能:

  • HTTP调用;
  • 表单构建和验证;
  • 路由;
  • 字符串和数字格式化;
  • 国际化;
  • 依赖注入;
  • 基本数据建模原语;
  • 自定义测试框架(尽管这并不像其他领域那样是什么重要的区别);
  • 默认包含的服务worker(一种用worker形式来执行JavaScript的方法)。

为何会选择使用react,而不是angular?

大多数团队都想要React的灵活性以及它带来的思维模型和直观API, angular深度集成后,迁移成本会很大。

  • 选择React时需要做出的另一个权衡是,它主要由Facebook开发和构建并且是为了满足Facebook的UI需求.

react 可以write once,run anyway?

就是声明ui层的code, 然后编译到不同环境中执行。

react 成功使用,需要引入哪些库?

react.js(核心部分,控制如何展示UI) 和react.dom (渲染与浏览器端)

react render为何传递dom元素,而不是id选择器

dom元素选择器单一,使用范围受限,支持传递dom元素,扩大了元素选择范围,复用了css选择器

react 为何编写html 不会编译报错?

这就需要了解javascript 支持的type类型。

  • type 属性规定脚本的 MIME 类型
  • MIME 类型由两部分组成:媒介类型和子类型

何为JSX?

一种js的扩展,封装了原本js 创建dom元素的语法糖。重复的代码createElement,效率低下。语法糖。

既然ui和数据定义可以分离,譬如for循环,可以展示10个createElement,那么事件响应式如何实现的?

支持自定义元素,为什么浏览器会认尼?

利用底层CustomRegiester webapi

  • 浏览器中的Web API让我们可以使用JavaScript通过DOM与Web文档进行交互

web api可以直接操作dom,为何还要react 的虚拟dom?

虚拟dom,有一部分是把dom操作集中化,然后一次性的操作,减少重绘重排,提升性能

什么是虚拟dom?

驻留在内存中的js对象。会涉及diff ,patch算法,先计算哪些更新了,然后执行修改部分的更新。

自己编写createElement会如何实现封装js?

type ,props, 然后判定数组,字符,迭代循环展示

如何区分数组、字符类型的?

通过instance of 。字符串属于基本类型,typeof即可。instanceof ,判定实例,是否由特定的constructor构函数而来的。

Tags: reactjs
使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏