什么是 React 元素javascript
建立 React 元素css
使用 JSX 语法:const element = <h1>Hello, world</h1>;
,JSX 语法是用 React.createElement() 来构建 React 元素的。java
React.createElement()
,接受三个参数:1. 能够是一个标签名(如div、span、或 React 组件);2. 为传入的属性;3. 组件的子组件。数组
React.cloneElement()
,与 React.createElement()
类似,不一样的是它传入的第一个参数是一个 React 元素,而不是标签名或组件;新添加的属性会并入原有属性,同属性名新的会替换旧的,传入到返回的新元素中。浏览器
渲染 React 元素到 DOM服务器
React.createElement()
编译成上面的 js 对象(也就是虚拟DOM节点);2. 而后再调用 ReactDOMComponent( vdom).mountComponent()
将虚拟DOM变成真实的DOM;3. 最后用 appendChild( domNode )
插入DOM树,显示出来。更新已渲染的元素网络
只更新必需要更新的部分架构
JSX 是 一种 JavaScript 的语法扩展,运用于 React 架构中,它是用来声明 React 当中的元素,React 使用 JSX 来描述用户界面。app
JSX就是 Javascript 和 XML 结合的一种格式,React 发明了 JSX,利用HTML语法来建立虚拟DOM。当遇到 <,JSX就当HTML解析,遇到 { 就当 JavaScript 解析。dom
**注意:**大括号里是 JavaScript,不要加引号,加引号就会被当成字符串。
组件能够将UI切分红一些独立的、可复用的部件,这样就只需专一于构建每个单独的部件了。
定义组件
自定义组件(组件名称必须以大写字母开头)
组件渲染(组件名必须大写字母开头)
组合组件(返回值只能有一个根元素)
提取组件
Props 的只读性
修改 state 时使用 setState()。
将函数转换为类
React.Component
的ES6类render()
空方法render()
方法中使用 this.props
替换 props为一个类添加局部状态
render()
方法中使用 this.state.date
替代 this.props.date
this.state
<Clock />
元素移除 date
属性将生命周期方法添加到类中
<Clock />
被传递给 ReactDOM.render()
时,React
调用 Clock
组件的构造函数;React
而后调用 Clock
组件的 render()
方法;Clock
的输出插入到 DOM 中时,React 调用 componentDidMount()
生命周期钩子;tick()
方法;Clock
组件被从DOM中移除,React会调用 componentWillUnmount()
这个钩子函数,定时器也就会被清除。正确地使用状态 关于 setState() :
setState()
; -更新状态多是异步的,构造函数是惟一可以初始化 this.state
的地方;数据单向流动
语法差别
return false;
不会阻止组件的默认行为,须要调用 e.preventDefault()
;尽可能不要使用 addEventListener
绑定事件处理函数的 this
-经过 bind 方法,原地绑定事件处理函数的 this 指向(特色:书写简单,可是每次渲染都会执行生成一个新函数) -经过一个箭头函数将真实的事件处理函数包装(特色:能清晰描述事件处理函数接收的参数列表) -在 constructor 中预先将全部的事件处理函数经过 bind 方法进行绑定(特色:解决了前两种方法的额外开销和从新渲染的问题,可是书写有点复杂) -使用类成员字段定义语法(特色:解决了上述三种问题,惟一的就是它还没被正式归入 ES5 规范中)
HTML 表单元素与 React 中的其余DOM元素有所不一样,由于表单元素生来就保留了一些内部状态。
用value实现受控组件
< input type=”text”/>
<textarea>
,经过它的子节点定义了它的文本值<select>
,建立下拉列表file input 标签
处理多个输入元素
受控 input 组件的 null 值
CSS
内联样式:使用内联样式属性设置元素样式,值必须是JavaScript对象。
background-color
编写的,所以必须使用camel case语法编写具备两个名称的属性。CSS 样式表
CSS 模块
Sass
React 中的条件渲染和 JavaScript 中的一致,使用 JavaScript 操做符 if 或条件运算符来建立表示当前状态的元素,而后让 React 根据它们来更新 UI。
Keys 能够在DOM中的某些元素被增长或删除的时候帮助 React 识别哪些元素发生了变化。
列表(Lists)
键(Keys)- 帮助 React 标识哪一个项被修改、添加或者移除了
React 最初的目的是使用 JavaScript 建立大型的,快速响应的网络应用。
React 的众多优势之一是它让咱们在编写代码的时候同时也在思考咱们的应用。
咱们须要了解的五大核心概念有:
React 组件参数类型的验证。
高阶组件就是一个函数,且该函数接受一个组件做为参数,并返回一个新的组件。也就是说,高阶组件是参数为组件,返回值为新组件的函数。