粗略简单的表述一下我最近对ReactJs的学习:
1.特性
它不是一个完整的MVC,MVVM框架,它和Web Components并不冲突,那什么是Web Components呢?近年来,web 开发者们通过插件或者模块的形式在网上分享自己的代码,便于其他开发者们复用这些优秀的代码。同样的故事不断发生,人们不断的复用 javascript 文件,然后是 CSS 文件,当然还有 HTML 片段。但是你又必须祈祷这些引入的代码不会摧毁你的网站或者web app。WebComponents 是这类问题最好的良药,通过一种标准化的非侵入的方式封装一个组件,每个组件能组织好它自身的 HTML 结构、CSS 样式、javascript 代码,并且不会干扰页面上的其他代码。我认为它和grunt,gulp是一起的,用来构建前端项目。
ReactJs的特点就是“轻”,它拥有的是组件化开发思路,更高效,以及降低成本。
2.适合的应用场景
1.复杂场景下的高性能
2.重用组件库,组件组合
3.“懒”,这个懒就是少做无用功,减少浪费时间
3.React Components lifeCycle
分为Mounted()--->Update()--->Unmounted();
Mounted是指React Components被render解析生成对应的DOM节点并被插入浏览器的DOM结构的过程
Update是指一个Mounted的React Components被重新render的过程
Unmounted是指一个mounted的React Componentes对应的DOM节点被从DOM结构中移除的这样一个过程
其中对于每一个状态,React都封装了对应的hook函数,hook函数也就是钩子函数。一开始是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息。现在则泛指对于hook时间来说,每当特定的消息发出,在没有到达目的前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。