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构函数而来的。
赏
使用支付宝打赏
使用微信打赏
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏