按照目前学习进度不定更新

  • react渲染的效率,看起来是全体的渲染,其实react在虚拟dom上的处理简直完美。它会过滤掉那些原来就有的东西,不去全体地重复渲染一遍。
  • 即将进入实战,React至今的个人看法
    • React像一个中央集权的国度。但是这样的执行力很强(限制了xss攻击),效率很高,管理层面清晰度也很高。
    • Smart组件 = Dumb组件 + 部分数据的管理 Smart组件就是地方官员,能够从上层获取一定的资源,之后由Dump组件分发 Dump组件通过考公务员成为地方官员(哈哈哈哈)
    • 经过了权力的分配,ReactApp已经没有了很多逻辑。也可以这么说,它成为了一个国家的象征。所以,它是结构清晰而简单的。大型项目中,这是必要的
    • 财政由一个地方存储,store,由固定的程序分配,dispatch 。 没有一系列的手续,你是不能从国库中获取资源的。 所以它很安全,很有序。
    • 最后挂载上去的还是由ReactDOM来过载,ReactDOM就像是土地分配的。它是上帝,它决定了哪块王国的土地在哪里生长。
    • 一个国家的生成是科学的。它主要有(常用的)constructor来构建(这就是一个王国的基础资源),componentWillMount来决定虚拟DOM的部分建设(国家的方法论),render是正式国家的建造,componentDidMount是国家初成,componentWillUnmount是国家新的改革方针,比如说计时器就相当于建国初期的军队,建国之后,安定下来了军队一定要取消,不然会出事情(关于componentWillMount加上的计时器要在componentUnMount取消)

主要细节的学习

  • 总算看懂了React小书最后一节的评论实战,它的意思是其实commentApp已经不用来当做Smart组件了,它将逻辑分发给commentInput和commentList,而commentApp就像皇帝一样,只要躺着分配人力资源就行了,做事的并不是皇帝,皇帝只要会识人就够了。而redux就像是一个国家的财政大臣,用来存储数据资源,分配资源。
  • 为什么要写一个component中的dump(呆呆的组件)又要写一个containers这样的高阶组件呢(Smart,机智的逻辑处理组件) 。 为了重用,写两个其实只用改动部分,而逻辑处理需要的是聪明的组件。所以,为了任务,我们需要smart的container,为了整个团队的效率我们需要dump的组件。
  • React的中央集权式的管理,这样有什么好处呢,所有的props逐级递交,显得非常有秩序。
  • 某个属性比较有风险,React团队就将他们设置的比较难以使用,这还是真是好玩哈哈。符合人懒惰的天性。
  • 一切都是那么顺理成章。所以给人的感觉就是React是那样的人性化和完美。而也正是觉得顺理成章才能更好地理解这门语言。
    运行的过程 constructor=>componentWillMount=>render=>componentDidMount=>componentWillUnmount.
    而关于计时器的部分,如果用一个state控制它的装载和卸载.如果这个时候没有componentWillUnmount,就会报错,因为定时器还在运行,因为JS的闭包特性,这样会导致严重的内存泄露.
    所以,我们的componentWillUnmount就诞生了,它是出来救场的!
  • React中的所有状态都被React写死了,或者这么说,它让html的控件都为React掌控,也就是说,安全性大大提高了。所有的Input的输入都由 setState 来控制,真是太神奇了。

  • 相比Vue来说,React写的确实不是那么痛快,也许是我不熟,还有编辑器的锅吧。

  • 关于状态提升,比如React小书中的评论的例子。由父组件CommentApp来分发commets状态给CommentList,这样的好处是,当出现了CommentList2的时候它也能够收到传来的信息。但是,如果我们的CommentApp中又出现了上级就会出现非常尴尬的局面了。我们不能总是通过修改props的拥有者。于是就有了Redux。一切都那么顺理成章。

  • 关于react和react-dom的分开也是,React不只是服务于网页PC端,它还有它其他的业务,所以,把他们分开使得它们更有针对性而不臃肿。

  • React里面的setState是异步的,这里有个坑,前几天刚研究完异步的callback和promise,今天出现问题了马上想到是这个哈哈哈。查看链接:https://segmentfault.com/q/1010000007343714

React方法论的更多相关文章

  1. React Native学习方法论

    这是我技术公众号的第一篇文章,也是React Native系列文章的第一篇,对我的文章感兴趣的可以加我微信16230091进行关注. 本文表面上讲React Native(以下简称RN),实际上对于学 ...

  2. 前端自动化测试 —— TDD环境配置(React+TypeScript)

    欢迎讨论与指导:) 前言 TDD -- Test-Drive Development是测试驱动开发的意思,是敏捷开发中的一项核心实践和技术,也是一种测试方法论.TDD的原理是在开发功能代码之前,先编写 ...

  3. CSS方法论完全总结

    软件开发领域所有的工程问题,归根结底衍生自一个问题:代码量大了怎么办? 对于CSS而言,因代码量增大导致的核心问题是命名冲突. 解决命名冲突的方法论是模块化,围绕此方法论,演化出种种模块化方案. 一. ...

  4. 打造高可靠与高性能的React同构解决方案

    前言 随着React的兴起, 结合Node直出的性能优势和React的组件化,React同构已然成为趋势之一.享受技术福利的同时,直面技术挑战,在复杂场景下,挑战10倍以上极致的性能优化. 什么是同构 ...

  5. 如何用 React 构建前端架构

    早期的前端是由后端开发的,最开始的时候仅仅做展示,点一下链接跳转到另外一个页面去,渲染表单,再用Ajax的方式请求网络和后端交互,数据返回来还需要把数据渲染到DOM上.写这样的代码的确是很简单.在We ...

  6. react组件的生命周期

    写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...

  7. 十分钟介绍mobx与react

    原文地址:https://mobxjs.github.io/mobx/getting-started.html 写在前面:本人英语水平有限,主要是写给自己看的,若有哪位同学看到了有问题的地方,请为我指 ...

  8. RxJS + Redux + React = Amazing!(译一)

    今天,我将Youtube上的<RxJS + Redux + React = Amazing!>翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: https:/ ...

  9. React 入门教程

    React 起源于Facebook内部项目,是一个用来构建用户界面的 javascript 库,相当于MVC架构中的V层框架,与市面上其他框架不同的是,React 把每一个组件当成了一个状态机,组件内 ...

随机推荐

  1. 查看字符串的编码chardet

    The Universal Character Encoding Detector chardet.detect("str") 返回:{‘confidence’:1.0,'enco ...

  2. 【C/C++】assert

    摘自http://www.cplusplus.com assert : macro #include <assert.h> void assert (int expression); 如果 ...

  3. 如何使用ODB(How to use odb On windows)

    1.下载ODB library:ODB Compiler,Common Runtime Library,Database Runtime Library. http://www.codesynthes ...

  4. poj 2000 Gold Coins(水题)

    一.Description The king pays his loyal knight in gold coins. On the first day of his service, the kni ...

  5. 【转】 Pro Android学习笔记(七四):HTTP服务(8):使用后台线程AsyncTask

    目录(?)[-] 5秒超时异常 AsyncTask 实现AsyncTask抽象类 对AsyncTask的调用 在哪里运行 其他重要method 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注 ...

  6. JavaScript-Tool:my97datepicker

    ylbtech-JavaScript-Tool:my97datepicker 1.返回顶部 1. 2.下载 https://files.cnblogs.com/files/storebook/java ...

  7. c++17 filesystem, regex 遍历目录

    linux 遍历目录+文件(优化版本) c++17 FS 还是挺好用的, VS2017支持,但是linux g++7.3 还是不支持 filesystem #include<filesystem ...

  8. 编译内核是出现:arch/arm/mm/tlb-v4wbi.S:64:error: too many positional arguments

    内核:Linux-3.4.2 编译内核出现arch/arm/mm/tlb-v4wbi.S:64:error: too many positional arguments 交叉工具链太老了,换新一点的. ...

  9. 问题:request.Headers;结果:HttpWebRequest.Headers 属性

    指定构成 HTTP 标头的名称/值对的集合. Headers 集合包含与请求关联的协议标头.下表列出了由系统或由属性或方法设置但未存储在 Headers 中的 HTTP 标头.   标头 设置方 Ac ...

  10. 全面解析JS字符串和正则表达式中的match、replace、exec等函数

    转自:https://www.jb51.net/article/87730.htm 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串.将 ...