1 Star 0 Fork 0

Hanley / study-front

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
38th.html 3.76 KB
Copy Edit Raw Blame History
hanley authored 2018-07-25 22:22 . react component lifecycle
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src='../node_modules/react/umd/react.development.js'></script>
<script src='../node_modules/react-dom/umd/react-dom.development.js'></script>
<script src='../node_modules/babel-standalone/babel.min.js'></script>
<title>react-事件,state</title>
<script>
/**
react 绑定事件
1.官方推荐
驼峰命名 onClick,onKeyDown等
必须在构造函数中实现进行绑定声明
2.简单方式
直接在元素上onClick={this.simpleClick.bind(this)}
3.箭头函数
直接元素上添加:(e)=>this.jtClick(e)
补充内容
state 主要作用于组件数据处理,他是组件的私有属性,只能组件内部修改,外部不可访问和修改
若在组件内部修改state会导致组件重新渲染
props
super 子类调用父类的构造函数
*/
</script>
<script type="text/babel">
//function 形式组件
function Num(props) {
return <p>{props.myNum}</p>
}
//ES6方式组件
class Num2 extends React.Component{
render(){
return <p>{this.props.myNum}</p>
}
}
class Hello extends React.Component{
/***过时的写法*/
// getInitialState(){
// return{
// name:'jack';
// }
// }
/**ES6的写法:构造函数
只能在构造函数中初始化state
*/
constructor(){
super();
this.state = {
name:'hanley',
flag:true,
num:0
}
this.change=this.handleClick.bind(this);
}
handleClick(){
alert("官方推荐绑定");
}
simpleClick(){
alert("简单绑定");
}
jtClick(){
alert("箭头函数绑定");
}
//修改state,通过setState
demoClick(){
this.setState({
flag:!this.state.flag
});
console.log('democlick,falg='+this.state.flag);
}
add(){
this.setState({
num:this.state.num+1
});
}
render(){
return (
<div>
<button onClick={this.change}>官方推荐事件绑定</button>
<button onClick={this.simpleClick.bind(this)}>简单绑定</button>
<button onClick={(e)=>this.jtClick(e)}>箭头函数绑定</button>
<hr/>
<button onClick={(e)=>this.demoClick(e)}>
{this.state.flag ? 'show':'hidden'}
</button>
<hr/>
<button onClick={()=>this.add()}>num+1</button>
<p>{this.state.num}</p>
<hr/>
<Num myNum={this.state.num}></Num>
<Num2 myNum={this.state.num}></Num2>
</div>
)
}
};
ReactDOM.render(
<Hello/>
,
document.getElementById('my')
)
</script>
</head>
<body>
<div id="my"></div>
</body>
</html>
1
https://gitee.com/thanlin/study.git
git@gitee.com:thanlin/study.git
thanlin
study
study-front
master

Search