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 ...
随机推荐
- CF 1060E. Sergey and Subway
题目链接 题意:给你一棵树,然后连接两个有公共邻居的点,问你连完后,任意两点的距离之和. 一开始看这种题,还不怎么会做,借鉴了这位大佬的博客,get到了新技能,当我们求树上任意俩点的距离之时,可以转化 ...
- JSR
JSR是Java Specification Requests的缩写,意思是Java 规范提案.是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求.任何人 ...
- Redis 集群环境的搭建
下载与解压 [root@localhost ~]# cd /usr/temp/ [root@localhost temp]# wget http://download.redis.io/release ...
- Eclipse安装教程 ——史上最详细安装Java &Python教程说明
参考链接:https://blog.csdn.net/zichen_ziqi/article/details/73995755
- 【Udacity并行计算课程笔记】- Lesson 4 Fundamental GPU Algorithms (Applications of Sort and Scan)
I. Scan应用--Compact 在介绍这节之前,首先给定一个情景方便理解,就是因为某种原因我们需要从扑克牌中选出方块的牌. 更formal一点的说法如下,输入是 \(s_0,s_1,...\), ...
- ActiveMQ静态网络链接(broker-to-broker)
ActiveMQ的网络连接分为静态连接和动态连接.本章研究静态连接. 1.ActiveMQ的networkConnector是什么 在某些情况下,需要多个ActiveMQ的Broker做集群,那么就涉 ...
- Netty实现简单UDP服务器
本文参考<Netty权威指南> 文件列表: ├── ChineseProverbClientHandler.java ├── ChineseProverbClient.java ├── C ...
- CF1100D Dasha and Chess
题目地址:CF1100D Dasha and Chess 这是我的第一道交互题 思路不难,主要讲讲这条语句: fflush(stdout); stdout是标准输出的意思.因为有时候,我们输出到std ...
- 20165325 2017-2018-2《Java程序设计》课程总结
20165325 2017-2018-2<Java程序设计>课程总结 一.每周作业链接汇总 1.预备作业一:我期待的师生关系 20165325 期望的师生关系 简要内容: 我心中的好老师 ...
- Ubuntu 16.04 Matlab2015b安装
小白一个,安装过程参考了一大堆教程. 这里记录一下. 一.安装 1) sudo mkdir /media/matlab 2) cd 到下载的镜像文件所在文件夹 3) 挂载镜像: sudo mount ...