前端:react笔记(叁):生命周期生命周期和state(, 面向对象) 和constructor, 数据自上而下流动

React çå½å¨æå¾è§£

 

/**

* //笔记三: 生命周期和state(和java 类似, 面向对象) 和constructor, 数据自上而下流动, 可以将属性传递给字组件

* 这通常被称为自顶向下或单向数据流。 任何状态始终由某些特定组件所有,并且从该状态导出的任何数据或 UI 只能影响树中下方的组件。

*/

class Clock1 extends React.Component {

/*constructor*/

constructor(props){

super(props);

// this.state = {date: new Date()};

this.state = {

date:new Date(),

comments:[]

}

}

//componentDidMount() 组件装载调用方法

// componentDidMount() {

// this.timerID = setInterval(

// () => this.tick(),

// 1000

// );

// }

componentDidMount() {

// fetchDate().then(response => {

// this.setState({

// date:response.date,

// })

// })

// response

// fetchDate 应该是定义在外面 和tick同级的方法, then方法是

// es6的方法 2个参数,分别为成功和失败调用funtion

// p.then(onFulfilled, onRejected);

 

// p.then(function(value) {

// // fulfillment

// }, function(reason) {

// // rejection

// });


 

// fetchComments().then(response => {

// this.setState({

// comments:response.comments,

// })

// })

this.timeId = setInterval(

() => this.tick(),

1000

// /**中函数不指定参数的类型,不检查实参的类型,不检查形参的个数

// 这里是将tick 绑定位interval的 java的lamader表达式 */

);

}

//componentWillUnmount() 卸载方法

componentWillUnmount() {

clearInterval(this.timeId)

};

tick() {

console.log(this.state.comments);

console.log('555');

this.setState({

date: new Date()

});

}

/**

*

*/

render() {

return (

<div>

<h1>Hello, world!</h1>

<h2>It is {this.state.date.toLocaleTimeString()}.</h2>

</div>

);

}

}

ReactDOM.render(

<Clock1/>,

document.getElementById('note3')

);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值