zoukankan      html  css  js  c++  java
  • 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方式参数提交

  • 相关阅读:
    团队开发项目客户端——游戏子系统的设计(上)
    团队开发项目客户端——注册子系统的设计
    团队项目开发客户端——登录子系统的设计
    协程库
    Linux下用命令查看CPU ID以及厂家等信息
    c++中字符串的截取:
    C++ STL 的各结构实现
    关于mysql查询最近一条记录
    BerkeleyDB原理及其对应API
    高性能服务器设计(Jeff Darcy's notes on high-performance server design
  • 原文地址:https://www.cnblogs.com/gugege/p/6374089.html
Copyright © 2011-2022 走看看