react组件主要有两种形式,一种是类组件,一种是函数组件。类组件具有高度可扩展性并且编写起来很麻烦。函数式组件具有单一功能,但编写起来很简单。
类组件
class List extends React.Component {
render() {
return (
);
}
}
功能组件
function List(props) {
return (
);
}
生命周期
—mount,—,下例在组件挂载时设置定时器,在组件卸载时清空定时器。
class Clock extends React.Component {
constructor(props) {
super(props);
this.state = {date: new Date()};
}
// 组件挂载
componentDidMount() {
this.timerID = setInterval(
![图片[2]-react组件-唐朝资源网](http://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008-r2/images/ff487866.ssas_powerpivotinstall_featuretree%28zh-cn%2csql.105%29.gif)
() => this.tick(),
1000
);
}
// 组件卸载
componentWillUnmount() {
clearInterval(this.timerID);
}
tick() {
this.setState({
date: new Date()
});
}
![图片[3]-react组件-唐朝资源网](http://www.qiexing.com/zb_users/upload/2018/02/201802231519383358228510.jpg)
render() {
return (
Hello, world!
It is {this.state.date.toLocaleTimeString()}.
);
}
}
ReactDOM.render(
,
document.getElementById('root')
![图片[4]-react组件-唐朝资源网](http://www.yzlfxy.com/d/file/2019/04/15/f9e852379f744450a1787402eb7b47e6.gif)
);
状态
state 用于维护组件内部的数据状态。类似于vue2中的数据。通过方法改变状态。
class ZButton extends React.Component {
constructor(props) {
super(props);
this.state = {
value: null,
};
}
render() {
return (
![图片[5]-react组件-唐朝资源网](http://www.pianshen.com/images/756/32529dd5acdc2eac83b7f36ed49ab1f4.JPEG)
);
}
}
重要的心态改善
通常,多个组件需要反映相同的变化数据,这种情况下建议将共享状态提升到最近的公共父组件。
单向数据流
数据从上到下传递。
不可变
当功能逻辑复杂时,复制一份数据进行操作,尽量不要对源数据进行操作,保持源数据不变。
© 版权声明
本站下载的源码均来自公开网络收集转发二次开发而来,
若侵犯了您的合法权益,请来信通知我们1413333033@qq.com,
我们会及时删除,给您带来的不便,我们深表歉意。
下载用户仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,访问及下载者下载默认同意本站声明的免责申明,请合理使用切勿商用。
THE END
暂无评论内容