笔记----深入浅出《React和Redux》第一章

1、概念与关系:

    (1)React是一个JavaScript语言的工具库,React本身并不依赖于Node.js,但是开发中用到的诸多工具需要Nodejs的支持。

    (2)安装Node.js的同时也就安装了npm,npm是Node.js的安装包管理工具。

    (3)Facebook提供了快速配置React应用环境的工具( 通过npm 进行安装 ):   create-react-app

      步骤一:

      在确认 Node.js 和 npm 安装好之后,命令行中执行下面的命令安装全局  create-react-app: (在MAC上输入这个命令可能要加上 sudo 获取权限)

      

        步骤二: 用cd命令 到需要创建项目的目录下创建项目

                  

      最后

      

        步骤三:npm start打开本地服务器,端口3000

                                  

      初始化目录

                         

2、编写计算点击数组件 

                 

                       

  

                   

      注意:

      (1)在从"react"中引入React,是为了支持JSX语法

      (2)在从"react"中引入Component,因为Component是所有组件的基类,提供很多组件共有的功能

      (3)JSX中使用的元素不仅仅是HTML元素,还可以是React组件(React组件元素的首字母必须要大写

      (4)JSX的onClick事件处理方式相比HTML的onclick方式 ,优点如下:

                  i.  onclick添加的事件处理函数是在全局环境下执行的,容易污染全局环境,

                          而JSX的onClick上挂载的函数都控制在组件内

                      ii.  当很多个DOM元素添加onclick事件,会影响网页性能

                          而JSX的onClick,并没有产生直接使用onclick的HTML,使用了事件委托的方式处理点击事件,无论有多少个onClick出现,最后都只是在DOM树上添加了一个事件处理函

                          数,挂载最顶层的DOM节点上。所有点击事件都被这个事件处理函数捕获,然后根据具体组件分配具体函数(优化了性能)

        iii.在删除事件对应的DOM元素而忘记删除对应的事件处理函数,则还会引发内存泄漏问题

         而JSX处于生命周期unmount时,会自动清理事件处理函数(避免了内存泄漏问题

3、添加样式

                    

                   

 4、React的“响应式编程”思想:

  UI = render(data)

  其中,

           render() 是“纯函数(输出只由参数决定,不依赖外部变量,并不会修改传入的引用类型参数的值)

     UI的变化只取决与data的变化

 5、Virtual DOM概念:

  Virtual DOM是存在于JS空间的树状结构,每次渲染React组件时,都会和上一次的Virtual DOM进行对比,最后只改变有差异部分

原文地址:https://www.cnblogs.com/qianbin/p/10143454.html