第2章:组件三大核心属性1: state(丝待他)

2.2.2. 理解

1.state是组件对象最重要的属性, 值是对象(可以包含多个key-value的组合)
2.组件被称为"状态机", 通过更新组件的state来更新对应的页面显示(重新渲染组件)

2.2.3. 强烈注意

1.组件中render方法中的this为组件实例对象
2.组件自定义的方法中this为undefined,如何解决?
a)强制绑定this: 通过函数对象的bind()
b)箭头函数
3.状态数据,不能直接修改或更新

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>2_类式组件.html</title>
</head>
<body>

    <!-- 准备好一个容器 -->
    <div id="test"></div>

    <!--  引入react核心库 -->
    <script type="text/javascript" src="../js/react.development.js"></script>
    <!-- 引入react-dom,用于支持react操作DOM -->
    <script type="text/javascript" src="../js/react-dom.development.js"></script>
    <!-- 引入babe1,用于将jsx转为js -->
    <script type="text/javascript" src="../js/babel.min.js"></script>
    
    <script type="text/babel">/* 此处一定要写babel */
       
        class Weather extends React.Component{
           // 初始化状态
           state={isHot:false,wind:'微风'}
           render(){
                const {isHot,wind}=this.state
                return (
                    <h1 onClick={this.changeWeather}>今天天气很{isHot?'炎热':'凉爽'},{wind}</h1>

                )
           }
           // 自定义方法——要用赋值语句的形式+箭头函数
           changeWeather=()=>{
                const isHot=this.state.isHot;
                this.setState({isHot:!isHot})
           }
        }
        // 2、渲染组件到页面
        ReactDOM.render(<Weather/>,document.getElementById('test'));
        
         
    </script>
</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容