第五章 JSX语法

  • class属性改为className for属性改为htmlFor
  • jsx中javascript表达式必须要有返回值,使用三元操作符
  • 所有的标签必须闭合 input img等
  • react声明组件时,组件名称第一个字母必须大写
  • 解析html代码 dangerouslySetInnerHTML={{ __html:htmlString }}
  • jsx中内联样式通过style属性来定义,驼峰命名法

第六章 React的数据载体:state props与context

state称为内部状态或局部状态,

props与context则用于在组件间传递数据,props仅支持逐层传递,而context则能够跨级传递,只要在一个组件中定义了context,这个组件里面的子组件不管跨多少级都可以访问到context中的数据,react-redux的provider组件就使用了context来传递store

第七章 reactElement与组件实例

组件是一个函数或类,它决定了如何把数据变为视图

ReactElement只是一个普通的对象,它描述了组件实例或DOM节点

组件实例是组件类的实例化对象

生命周期

  1. constructor()

    执行时间:组件被加载前最先调用,并且仅调用一次

    作用:定义状态机变量

    注意:第一个语句必须是super(props)

  2. componentWillMount()

    执行时间:组件初始渲染(render()被调用前)前调用,并且仅调用一次

    作用:如果在这个函数中调用setState改变某些状态机,react会等待setState完成后再渲染 组件

    注意:子组件也有componentWillMount函数,在父组件的该函数调用后再被调用

  3. render()

    执行时间:componentWillMount之后,componentDidMount之前,

    作用:渲染挂载组件

    触发条件:(1)初始化加载页面(2)状态机改变setState ( 3 ) 接收到新的props(父组件更新)

    注意:组件所必不可少的核心函数;不能在该函数中修改状态机state

  4. componentDidMount()

    执行时间:render之后被调用,并且仅调用一次

    作用:渲染挂载组件;可以使用refs(备注:React支持一个特殊的属性,你可以将这个属性加在任何通过render()返回的组件中。这也就是说对render()返回的组件进行一个标记,可以方便的定位的这个组件实例。)

    注意:子组件也有该函数,在父组件的该函数调用前被调用;如果在该函数中修改某些状态机state,会重新渲染render组件,所以有些组件为减少渲染次数,可以将某些修改状态机的操作放在componentWillMount函数中;

    如果需要在程序启动显示初始化页面后从网路获取数据,可以将网络请求代码放在该函数中

  5. componentWillReceiveProps(nextProps)

    执行时间:组件渲染后,当组件接收到新的props时被调用;这个函数接收一个object参数(新的props);props是父组件传递给子组件的。父组件发生render的时候子组件就会调用

    作用:渲染挂载组件;可以使用refs(备注:React支持一个特殊的属性,你可以将这个属性加在任何通过render()返回的组件中。这也就是说对render()返回的组件进行一个标记,可以方便的定位的这个组件实例。)

    注意:react初次渲染时,该函数并不会被触发,因此有时该函数需要和componentWillMount或componentDidMount组合使用;使用该函数一定要加nextProps参数

  6. shouldComponentUpdate(nextProps, nextState)

    执行时间:组件挂载后(即执行完render),接收到新的state或props时被调用,即每次执行setState都会执行该函数,来判断是否重新render组件,默认返回true;接收两个参数:第一个是心的props,第二个是新的state。

    作用:如果有些变化不需要重新render组件,可以在该函数中阻拦

    注意:该方法在初始化渲染的时候不会调用,在使用 forceUpdate 方法的时候也不会

  7. componentWillUpdate()

    执行时间:在接收到新的props 或者 state,重新渲染之前立刻调用,在初始化渲染的时候该方法不会被调用

    作用:为即将发生的重新渲染做一些准备工作

    注意:不能再该函数中通过this.setstate再次改变状态机,如果需要,则在componentWillReceiveProps函数中改变

  8. componentDidUpdate()

    执行时间:重新渲染后调用,在初始化渲染的时候该方法不会被调用

    作用:使用该方法可以在组件更新之后操作DOM 元素

  9. componentWillUnmount()

    执行时间:组件被卸载前调用,

    作用:在该方法中执行任何必要的清理,比如无效的定时器,或者清除在 componentDidMount 中创建的 DOM 元素。

React组件中this
  • constructor(),render(),componentDidMount(),componentDidUpdate()等其他生命周期函数中的this都是组件实例
  • 其他地方的this都与当前上下文有关,因此在render输出的reactElemnt中调用其他自定义函数需要绑定this,当然也可以使用箭头函数

第八章 初识Redux

action是一个普通对象,表示将要执行的动作,例如{type:'increment'}

reducer描述了action如何把state转变成下一个state

store是个全局对象,将action和reducer以及stte联系在一起

store有以下职能:

  • 维持应用的state
  • 提供getState()方法获取state
  • 提供dispatch(action)方法更新state
  • 提供subscribe(listener)注册监听器

第九章 action创建函数与ReduxThunk中间件

reduxThunk中间件可以让action创建函数先不返回action对象,而是返回一个函数,通过这个函数延迟dispatch或者只在满足指定条件的情况下dispatch

import {createStore,applyMiddleware} from 'redux';
import thunk from 'redux-thunk'; const store = createStore(counter,applyMiddleware(thunk));

第十一章 使用react-redux链接

在所有组件的顶层使用Provider组件给整个程序提供store

ReactDOM.render(
<Provider store={store}>
...
</Peovider>,rootEl);

使用connect()将state和action创建函数绑定到组件中

export default connect(
state=>({counter:state.counter}),//将state.counter传递给组件的counter属性
ActionCreators//是所有action创建函数的集合,同时为每个action创建函数隐式绑定了dispatch方法,
//因此可以直接通过props调用这个action创建函数
)(Counter);

容器组件(Container)和展示组件(Components)

展示组件 容器组件
作用 描述如何展现(骨架、样式) 描述如何运行(数据获取、状态更新)
直接使用 Redux
数据来源 props 监听 Redux state
数据修改 从 props 调用回调函数 向 Redux 派发 actions
调用方式 手动 通常由 React Redux 生成

《React与Redux开发实例精解》读书笔记的更多相关文章

  1. csapp读书笔记-并发编程

    这是基础,理解不能有偏差 如果线程/进程的逻辑控制流在时间上重叠,那么就是并发的.我们可以将并发看成是一种os内核用来运行多个应用程序的实例,但是并发不仅在内核,在应用程序中的角色也很重要. 在应用级 ...

  2. CSAPP 读书笔记 - 2.31练习题

    根据等式(2-14) 假如w = 4 数值范围在-8 ~ 7之间 2^w = 16 x = 5, y = 4的情况下面 x + y = 9 >=2 ^(w-1)  属于第一种情况 sum = x ...

  3. CSAPP读书笔记--第八章 异常控制流

    第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流.目前为止,我们学过两种改变控制流的方式: 1)跳转和分支: 2)调用和返回. 但是上面的方法只能控制程序本身,发生以下系统状态的 ...

  4. CSAPP 并发编程读书笔记

    CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...

  5. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  6. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  7. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  8. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  9. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  10. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

随机推荐

  1. (转)Db2 数据库常见堵塞问题分析和处理

    原文:https://www.ibm.com/developerworks/cn/analytics/library/ba-lo-db2-common-blocking-problem-analyze ...

  2. Mac 下使用svn

    作为一个一直使用windows系统的人,还真不知道mac上的svn如何使用,偶然机会下现在需要. 查过后发现 mac 是自带svn的,在我装好xcode后,再安装 Command Line Tools ...

  3. Android--Service之提高

    前言 上一篇博客讲解了一下Android下Service组件的基本使用,对Service组件还不了解的朋友可以先去看看另外一篇Service基础的博客:Android--Service之基础.这篇博客 ...

  4. Android--通知之Toast

    前言 这篇博客讲解一下Android下的一个简单信息提示的方式:Toast.如果一直看我的博客,会发现在之前的Demo中,一直有用到Toast去提示消息,在这篇博客中就专门讲它.Toast提供一个浮动 ...

  5. ⑤早起的鸟儿有虫吃-JSTL核心标签库[收藏]

    介绍 JSTL 全名为Java Server Pages Standard Tag Library(JSP Standard Tag Library),它的中文名称为JSP 标准标签函数库. Web  ...

  6. UVa OJ 120

    Background背景 Stacks and Queues are often considered the bread and butter of data structures and find ...

  7. 在koa中想要优雅的发送响应?看这就对了

    背景 前不久把项目中用了很久的一个伪中间件撸成了一个npm包发布了出去. 为什么叫伪中间件?正常的中间件的引用方式, 就拿body-parser为例. var Koa = require('koa') ...

  8. Spring Security之动态配置资源权限

    在Spring Security中实现通过数据库动态配置url资源权限,需要通过配置验证过滤器来实现资源权限的加载.验证.系统启动时,到数据库加载系统资源权限列表,当有请求访问时,通过对比系统资源权限 ...

  9. tcp关闭状态详解

    tcp关闭连接不区分客户端和服务端,哪一端口可以主动发起关闭连接请求.所以为了描述方便,描述中的“主动方”表示主动发起关闭连接一方,“被动方”表示被动关闭连接一方. 1. tcp关闭连接状态转换 上图 ...

  10. 设计模式之装饰模式,session共享的底层原理

    前言 还记得当初写spring-session实现分布式集群session的共享的时候,里面有说到利用filter和HttpServletRequestWrapper可以定制自己的getSession ...