• React.js学习笔记


    公司前端部分需要用react重写,于是这个任务就落在我的头上。

    首先需要安装node.js,然后改registry到淘宝镜像

    1.看官方Installation文档时出现一个不太懂的概念:build pipeline,查阅资料后如下:

      build pipeline:

    2.react的State那一章节,定期修改时间需用setState方法,用=赋值无效。个人猜测应该是react的监听机制的原因

      因为react通过setState方法知道state发生了变化,会重新调用render()方法重新渲染,因而页面发生变化 。

          ReactComponent.js 61 line:

      

    ReactComponent.prototype.setState = function (partialState, callback) {
      !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) 
      ? process.env.NODE_ENV !== 'production'
      ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.')
      : _prodInvariant('85')
      : void 0; this.updater.enqueueSetState(this, partialState); if (callback) { this.updater.enqueueCallback(this, callback, 'setState'); } };

    3.通过官方给的npm start方式运行react的demo,发现我修改代码之后浏览器会自动刷新。很666的方式啊!

      找了个自动刷新的博文:  http://www.cnblogs.com/axl234/p/5613922.html

                   http://www.jianshu.com/p/7280d799f56d

      这里的实现方式应该是通过websocket通知前段的js代码重新渲染页面,具体待验证。

    4. JSX的callback中的this需要特别对待,这其实是JS范围内的问题. callback 中this的上下文问题

          主要是Class中的方法不自动绑定this,需要自己bind

    5. React的数据流是单向绑定,遇到需要同步的问题时,解决办法是lift state up.运用回调函数callback

        实现方式是将修改State的回调方法在父级Component定义传给子级的。

        通过function的up-down flow传递实现down-up 的状态改变, 很巧妙。

    5.5 如果有down-up的需要,可以通过ref属性加到React element或Html上

    6. 在React中组件并不是真实的 DOM 节点,而是存在于内存之中的一种数据结构,叫做虚拟 DOM (virtual DOM)。

      只有当它插入文档以后,才会变成真实的 DOM 。根据 React 的设计,所有的 DOM 变动,都先在虚拟 DOM 上发

      生,然后再将实际发生变动的部分,反映在真实 DOM上,这种算法叫做 DOM diff ,它可以极大提高网页的性能表现。

    7. Css预编译: 一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要

      使用这种语言进行编码工作。

    8. es6 spread operator ... 实现机制:(先占个坑)

    9. react.js只涉及UI部分,异步需要借助Fetch。提交参数时, body:"name=admin&password=admin123”不可行,

      因为Fetch没有提供自动转为FormData的功能,要自己new 一个FormData.

      Fetch实现跨域请求与POST方式参数提交

  • 相关阅读:
    [它山之石] 一件事情,假设你不能说清楚,十有八九你就做不好
    《硅谷》观后感:创业难,毋忘初心,且行且珍惜
    POJ
    Android Service完全解析,关于服务你所需知道的一切(上)
    Android最佳性能实践(四)——布局优化技巧
    Android最佳性能实践(一)——合理管理内存
    深入解析开源项目之Universal-Image-Loader(二)硬盘---缓存篇
    Image-Loader LruMemoryCache
    LinkedHashMap<String, Bitmap>(0, 0.75f, true) LinkedHashMap的加载因子和初始容量分配
    深入解析开源项目之Universal-Image-Loader(二)内存---缓存篇
  • 原文地址:https://www.cnblogs.com/gugege/p/6374089.html
Copyright © 2020-2023  润新知