React之setState使用
<!DOCTYPE html>
<html>
<head>
? ? <meat charset="UTF-8">
? ? ? ? <title>React之setState使用</title>
</head>
<body>
? ? <!-- 準(zhǔn)備好一個容器 -->
? ? <div id="test"></div>
? ? <!-- 核心庫 -->
? ? <script type="text/javascript" src="../js/react.development.js"></script>
? ? <!-- react-dom,操作dom -->
? ? <script type="text/javascript" src="../js/react-dom.development.js"></script>
? ? <!-- 引入babel,jsx轉(zhuǎn)為js -->
? ? <script type="text/javascript" src="../js/babel.min.js"></script>
? ? <!-- 此處一定要寫babel -->
? ? <script type="text/babel">
? ? ? ? //1.創(chuàng)建組件
? ? ? ? class Weather extends React.Component{
? ? ? ? ? ? //構(gòu)造器調(diào)用幾次?——1次
? ? ? ? ? ?constructor(props){
? ? ? ? ? ? ? ?console.log('constructor')
? ? ? ? ? ? ? super(props)
? ? ? ? ? ? ? this.state={isHot:false,wind:'微風(fēng)'} ?
? ? ? ? ? ? ? this.demo=this.test.bind(this) ? ? //test為Weather中的 test(),demo在31行使用 ? ? ?
? ? ? ? ? ?}
? ? ? ? ? ?//render調(diào)用幾次?——1+n次,1是初始化,n是狀態(tài)更新次數(shù)
? ? ? ? ? ?render(){
? ? ? ? ? ? ? ? console.log('render')
? ? ? ? ? ? ? ?const {isHot,wind} =this.state;
? ? ? ? ? ? ? ?console.log(this);
? ? ? ? ? ? ? ?return <h1 onClick={this.demo}>今天天氣很{isHot ? '炎熱' : '涼爽'},{wind}</h1>
? ? ? ? ? ?} ? ?
? ? ? ? ? ? //test調(diào)用幾次?——點幾次調(diào)幾次 ? ?
? ? ? ? ? ? test() {
? ? ? ? ? ? ? ? console.log('test')
? ? ? ? ? ? ? ? //changeWeather放在哪里?————weather的原型對象上,供實例使用
? ? ? ? ? ? ? ? //changeWeather作為onClick的回調(diào),所有不是通過實例調(diào)用的,是直接調(diào)用
? ? ? ? ? ? ? ? //類中的方法默認(rèn)開啟了局部的嚴(yán)格模式,所有changeWeather中的this為underfined
? ? ? ? ? ? ? ? const isHot=this.state.isHot
? ? ? ? ? ? ? ? //嚴(yán)重注意:狀態(tài)必須通過setState進(jìn)行更新,是合并,不是替換
? ? ? ? ? ? ? ? this.setState({isHot:!isHot})
? ? ? ? ? ? ? ? //注意:state不可直接更改,下面這行是直接更改
? ? ? ? ? ? ? ?// this.state.isHot=!isHot//錯誤寫法
? ? ? ? ? ? }
? ? ? ? } ?
? ? ? ? //2.渲染組件到頁面
? ? ? ? ReactDOM.render(<Weather />, document.getElementById('test')); ?
? ? </script>
</body>
</html>
總結(jié)
以上是生活随笔為你收集整理的React之setState使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php:// 协议
- 下一篇: React之解决类中的this