React基础知识备忘
section-1
//react组件
export class Halo extends React.Component{
constructor(...args){
super(...args); //初始化父类构造函数
this.state={ //设置state
text:""
}
}
hello(ev){
this.setState({ //修改state
text:ev.target.value
})
}
render(){
return(
{/*只能一个父元素包裹*/}
<div>
{/*事件大小写注意 onChange onClick*/}
<input type="text" onChange= {this.hello.bind(this)}/>
<span>{this.state.text}</span>
</div>
)
}
}
section-2
export class Halo extends React.Component{
constructor(...args){
super(...args);
this.state={
display:"block"
}
}
toggle(){
this.setState({
display:this.state.display==="none" ? "block":"none"
})
}
render(){
return(
<div>
<input type="button" value="切换" onClick={this.toggle.bind(this)}/>
{/*class在JSX中需要改成className*/}
{/*行内样式需要加两个花括号*/}
<span className="content" style={{display:this.state.display}}>内容的显示和隐藏</span>
</div>
)
}
}
section-3
export class Halo extends React.Component{
constructor(...args){
super(...args);
this.state={
h:0,
m:0,
s:0
};
setInterval(function(){
this.update();
}.bind(this),1000)
}
update(){
let date=new Date();
this.setState({
h:date.getHours(),
m:date.getMinutes(),
s:date.getSeconds()
})
}
componentDidMount(){
this.update();
}
render(){
return(
<div>
{this.state.h}:{this.state.m}:{this.state.s}
</div>
)
}
}
section-4
/*react 生命周期*/
componentWillMount() 创建前
componentDidMount() 创建后
componentWillUpdate() 更新前
componentDidUpdate() 更新后
componentWillUnMount() 销毁前
componentWillReceiveProps(nextProps){
// ???
}
shouldComponentUpdate(){
//返回boolean值 默认每次状态更改时重新渲染
//返回false componentWillUpdate(),render()和componentDidUpdate()将不会被调用
}
section-5
//组件的另一种写法 无状态state组件
//Es6 React.Component Es5 React.createClass 其他两种定义方式
let Item=function(props){
return <li>{props.value}</li>
};
export class Halo extends React.Component{
constructor(...args){
super();
this.state={
arr:[1,2,3,4,5]
}
}
addItem(){
this.setState({
arr:this.state.arr.concat([Math.random()])
})
}
render(){
let result=[],arr=this.state.arr;
for(var i=0;i<arr.length;i++){
{/*需要给每个Item增加unique key唯一标识*/}
result.push(<Item key={i} value={arr[i]} />)
}
return(
<div>
<input type="button" value="增加Item" onClick={this.addItem.bind(this)}/>
<ul>
{result}
</ul>
</div>
)
}
}
React基础知识备忘的更多相关文章
- java基础知识备忘
1.java内存分配 a.寄存器cup -- 暂不涉及 b.本地方法栈 -- 虚拟机调用windows功能用的,比如创建文件夹 c.方法区 -- 存放 .class文件,负责存放方法 d.栈 -- ...
- JVM内存知识备忘
又是一篇备忘... 主要记录一些知识,进行一些资源的汇总. 先来群里liufor大大提供的两张图,清晰易懂: Dockerized Java https://www.youtube.com/watch ...
- GIS部分理论知识备忘随笔
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.高斯克吕格投影带换算 某坐标的经度为112度,其投影的6度带和3度带 ...
- React基础知识
学习文档(按优先级排列)http://reactjs.cn/react/docs/tutorial-zh-CN.htmlhttp://www.cnblogs.com/Mrs-cc/p/4969755. ...
- React 基础知识总结
data-id="1190000016885142" data-license=""> 一.Node.js Node.js并不是一个JavaScript框 ...
- React开发实时聊天招聘工具 -第三章 React基础知识回顾
function a (props) { return <h1>hello world{this.props.asd}</h1> } class a extends React ...
- ASP.NET基础代码备忘
使用ASP.NET原生的__doPostBack方法触发asp:Button //javaScript部分 __doPostBack('<%=btnAmountDivided.UniqueID ...
- xml 基础学习备忘
<?xml version="1.0" encoding="UTF-8"? standalone="yes"> 这里的encod ...
- JavaScript中JSONObject和JSONArray相关知识备忘(网络转载)
1.json的格式,有两种: {"key": "value"} //JSONObject(对象) [{"key1": "value ...
随机推荐
- 牛客寒假算法基础集训营4 F(二分+拓扑判环)
题目链接 题目的输出:对于每次提问,输出一行"Yes"表示大家都遵守了群规,反之输出"No". 那么输出的就是一连串的yes和no了,二分一下无环的最大提问位置 ...
- 多项式乘法(FFT)学习笔记
------------------------------------------本文只探讨多项式乘法(FFT)在信息学中的应用如有错误或不明欢迎指出或提问,在此不胜感激 多项式 1.系数表示法 ...
- Python 爬虫一 简介
什么是爬虫? 爬虫可以做什么? 爬虫的本质 爬虫的基本流程 什么是request&response 爬取到数据该怎么办 什么是爬虫? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间 ...
- ReentrantLock(重入锁)的使用
//效果和synchronized一样,都可以同步执行,lock方法获得锁,unlock方法释放锁public class MyService { private Lock lock = new Re ...
- 方法join()使用详解
在线程的常见方法一节中,已经接触过join()方法的使用. 在很多情况下,主线程创建并启动子线程,如果子线程中要进行大量的耗时运算,主线程将早于子线程结束.这时,如果主线程想等子线程执行完成才结束,比 ...
- SpringTask定时任务的使用
实现定时任务简单的有四种方式:Timer\ScheduledThreadPool线程池\quartz(常用),还有另一种就是springtask. 都说springtask上手简单,于是简单的研究一下 ...
- 码云IntelliJ IDEA
将项目从码云clone到IntelliJ IDEA https://blog.csdn.net/wust_lh/article/details/68068176 用IDEA上传本地项目到码云/Gith ...
- Python学习笔记-随机数
IronPython的random 只能在0-0.5之间,所以最后调用了C#的Random. #!/usr/bin/python #coding=utf-8 import random import ...
- Java基础1-Java概述;jdk安装配置
计算机基本概念 windows : desktop系统. linux : 稳定性 + 安全性. centos . ubuntu.redhat.suse mac : 路径: 精准定位 目录: 所在的文件 ...
- 虚拟机安装CentOS配置静态IP
在VMware中安装Linux虚拟机后(比如CentOS6.*),不能访问网络,需要配置静态IP.虚拟机中推荐使用NET模式进行网络连接,在虚拟机的工具栏点击编辑>虚拟网络编辑器>NET模 ...