官网学习笔记

*,p,pre,span,div,code { font-size: 16px }

一、Introducint JSX

在JSX中插入用户输入是安全的,默认情况下ReactDOM会在渲染前,转义JSX中的任意值,渲染前,所有的值都被转化为字符串形式,这能预防XSS攻击。

二、Components and Props

All React components must act like pure functions with respect to their props.

组件中的props都是只读的,不能修改

三、State and Lifecycle

state和props相似,但是它是私有的,完全由组件自身控制。state特性只在class中出现。

If you don‘t use something in render(), it shouldn‘t be in the state.

指定this.state值的唯一地方是constructor中。

state 更新可能是异步的

为了更好的性能,React可能会调用一个更新,批处理多个setState()。因为this.props和this.state可能异步更新,因此不能依靠他们的值来计算下一个状态值。比如下面这个例子,可能会使得counter更新失败:

// Wrong
this.setState({
  counter: this.state.counter + this.props.increment,
});

解决这个问题可以使用第二种方法使用setState(),给setState()传入一个函数而不是一个对象。传入的函数的第一个参数是当前的state,第二个参数是更新前的props。因此上面的例子可以改写为:

// Correct
this.setState((prevState, props) => ({
  counter: prevState.counter + props.increment
}));
时间: 2024-07-31 03:05:14

官网学习笔记的相关文章

React官网学习笔记

欢迎指导与讨论 : ) 前言 本文主要是笔者在React英文官网学习时整理的笔记.由于笔者水平有限,如有错误恳请指出 O(∩_∩)O 一 .Tutoial 篇 1 . React的组件类名的首字母必须是大写  var Comment = React.creatClass({..})  class Comment extends Component(){...} 2 . 我们需要往一个对象里传入一些方法,并把这个对象以参数的形式传到React.creatClass( )里.其中最重要的方法是ren

官网学习笔记--Advanced Guide

p,pre,span,code,div { font-size: 16px } 一.JSX in Depth 1.1 choosing the type at runtime import React from 'react'; import { PhotoStory, VideoStory } from './stories'; const components = { photo: PhotoStory, video: VideoStory }; function Story(props)

树莓派官网学习记录

树莓派官网学习记录 和GPIO Zero 一起开始 我们将做的 树莓派一侧的排针是称为通用输入输出引脚(GPIO) 这些引脚允许树莓派去控制现实中的东西.你能连接元件到这些引脚上:输出设备像能任意被开关的LED(发光二极管):或者是输入设备像能用作触发事件的一个按钮或者传感器,比如当一个按钮被按下的时候,点亮一只LED. 通过使用GPIO Zero 库,你能很容易的控制树莓派的GPIO引脚. 我们将学习的 通过完成这个资源你将学到: 如何将LED和按钮连接到树莓派的GPIO上 如何通过GPIO

4.Knockout.Js官网学习(事件绑定)

前言 click绑定在DOM元素上添加事件句柄以便元素被点击的时候执行定义的JavaScript 函数.大部分是用在button,input和连接a上,但是可以在任意元素上使用. 简单示例 <h2>ClickBind</h2> <div> You've clicked <span data-bind="text: numberOfClicks"></span> times <button data-bind="

Knockout.Js官网学习(系列)

1.Knockout.Js官网学习(简介) 2.Knockout.Js官网学习(监控属性Observables) Knockout.Js官网学习(数组observable) 3.Knockout.Js官网学习(visible绑定) Knockout.Js官网学习(text绑定) Knockout.Js官网学习(html绑定.css绑定) Knockout.Js官网学习(style绑定.attr绑定) 4.Knockout.Js官网学习(click绑定) Knockout.Js官网学习(event

【Spark深入学习 -16】官网学习SparkSQL

----本节内容-------1.概览        1.1 Spark SQL        1.2 DatSets和DataFrame2.动手干活        2.1 契入点:SparkSession        2.2 创建DataFrames        2.3 非强类型结果集操作        2.4 程序化执行SQL查询        2.5 全局临时视图        2.6 创建DataSets        2.7 与RDD交互操作        2.8 聚集函数3.Sp

vagrant 慕课网 学习笔记

搭建一个环境,不需要重复配置,直接利用vagrant复制就可以了 vagrant 和 virtualbox 的版本必须匹配, 不匹配的话可能会出很多未知的错误 搭配问题可以去官网查看 所有源码在 githup.com/apanly/mooc 如果不能FQ 就请访问 git.oschina.net/apanly/mooc 安装git sudo apt-get install git http://www.imooc.com/video/14218 3-5 vagrant ThinkPHP5运行环境

1.Knockout.Js官网学习(简介)

前言 最近一段时间在网上经常看到关于Knockout.js文章,于是自己就到官网看了下,不过是英文的,自己果断搞不来,借用google翻译了一下.然后刚刚发现在建立asp.net mvc4.0的应用程序的时候,建完之后我直接在项目的Scripts中看到了这两个js类库,用谷歌翻译看了下官网,Ko的实现原理是MVVM,比MVC高级一些. 简介MVVM模式 MVVM是Model-View-ViewModel的简写. WPF的数据绑定与Presentation Model相结合是非常好的做法,使得开发

如鹏网学习笔记(七)HTML基础

HTML笔记 一.HTML简介 1,HTML (Hyper Text Mark-up Language) 超文本标记语言,是一种编程语言,也可以说是一种标准.规范. 2,HTML提供了一系列标记(标签),每个标记都有不同的含义和作用,浏览器根据标记的含义把内容显示到浏览器页面上 3,超文本:页面不仅可以包含普通文本,还可以包含图片.链接.音乐.程序等非文本内容 4,学习HTML主要是学习常用标签的用法和语法规范 二.基本标签 <!DOCTYPE> 定义文档类型,表明该文档的类型和版本(了解)