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

  • 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. 使用 nginx 和 rtmp 插件搭建视频直播和点播服务器

    使用 nginx 和 rtmp 模块 ,可以很容易地搭建一个视频直播和点播服务器出来. 首先,看一下最经典的参考文献: How to set up your own private RTMP serv ...

  2. oddjob之smooth关闭程序

    java程序的smooth关闭策略可以采用hook跟观察者的模式实现 无限等状态,如果状态出现可以关闭的事件则进行关闭 虚拟机的关闭通过钩子调用关闭,如果关闭失败,在超时时间内强制杀掉jvm 状态类 ...

  3. 手动导入XMPPFramework框架

    环境: Xcode 8.2.1 XMPPFramework 3.6.5 (下载地址) Objective-C (项目使用的语言,最新版的3.7.0要求convert to swift) 1.下载XMP ...

  4. BZOJ2733:[HNOI2012]永无乡

    浅谈线段树合并:https://www.cnblogs.com/AKMer/p/10251001.html 题目传送门:https://lydsy.com/JudgeOnline/problem.ph ...

  5. 洛谷【P2005】A/B Problem II

    题目传送门:https://www.luogu.org/problemnew/show/P2005 高精除低精:https://www.cnblogs.com/AKMer/p/9724556.html ...

  6. Python 写文件时的Unicode设置

    今天在把Evenote的笔记内容写为文件时出错:     f.write(content) UnicodeEncodeError: &apos;gbk&apos; codec can& ...

  7. android获取时间差的方法

    本文实例讲述了android获取时间差的方法.分享给大家供大家参考.具体分析如下: 有些时候我们需要获取当前时间和某个时间之间的时间差,这时如何获取呢? 1. 引用如下命名空间: import jav ...

  8. asp中实现lable自动换行

    asp中实现lable自动换行 因为在用Label标签显示内容时,内容太多,想实现自动换行.我们知道在WINFORM中程序中,有一个属性是AUTOSIZE 改成FALSE 是可以实现的.但是在ASP. ...

  9. [原]toString()方法的复写作用, 以及打印集合.

    java中的每个类的根都是Object的子类. 必然有拥有了Object的所有方法. 在package java.lang.Object源码中: public String toString() { ...

  10. [poj1737]Connected Graph(连通图计数)

    题意:输出题中带有$n$个标号的图中连通图的个数. 解题关键: 令$f(n)$为连通图的个数,$g(n)$为非联通图的个数,$h(n)$为总的个数. 则$f(n) + g(n) = h(n)$ 考虑标 ...