美文网首页
react学习(10)组件实例三大核心:state

react学习(10)组件实例三大核心:state

作者: 哆啦C梦的百宝箱 | 来源:发表于2022-08-12 15:25 被阅读0次
知识点

1:定义组件的两种方式:函数式和类式。函数式适用于简单组件的定义,类式适用于复杂组件的定义。而简单与复杂的鉴定标准就是是否有state。

    <script type="text/babel">
        class Weather extends React.Component {
            constructor(props){
                super(props);
                this.state ={isHot:true};
            }
            render(){
                const {isHot} = this.state;
                console.log(this);
                return <h1 onClick={this.change}>今天天气很{isHot?'炎热':'凉爽'}</h1>
            }
            change=()=>{
                console.log(this);
            }
        };
        ReactDOM.render(<Weather/>,document.getElementById('test'));
    </script>

2:render中的this指向的是组件实例,因为是组件实例调用的,但是change中的this,如果写成普通函数,那么则指向的就是undefined,因为类里面函数默认开始严格模式,即使没有开启,指向的也是window,而且组件实例,所以可以把change写成箭头函数的形式。
3:关于事件绑定,react中采用小驼峰格式。原生的三种方式

<button onclick="demo()"></button>
btn.addEventlistener('click',function(){})
btn.onclick=function(){}

4:一个重要问题

class Weather extends React.Component {
            constructor(props){
                //构造器的函数中this为组件实例
                super(props);
                this.state ={isHot:true};
                //this.change = this.change.bind(this);
            }
            render(){
                const {isHot} = this.state;
                console.log(this);
                return <h1 onClick={this.change}>今天天气很{isHot?'炎热':'凉爽'}</h1>
            }
            change(){
                //console.log(this);
            }
        };

在类上直接定义一个方法,那个该方法在类的原型对象上


屏幕截图 2022-08-11 143135.png

当我们在构造器函数中写上

this.change = this.change.bind(this);

这个时候相当于在组件实例身上创建了一个change函数。bind的作用就是返回一个函数,并改变this的指向。而我们代码里面onClick调用的则是组件实例的change。


屏幕截图 2022-08-11 143420.png

注意:我们使用箭头函数,创建的change在组件实例身上,并不在组件类的原型对象上,类身上除了写函数之外,是可以写赋值语句的,比如a=1,那么其实是定义在实例对象的身上,箭头函数实际和赋值一样

相关文章

  • react学习(10)组件实例三大核心:state

    知识点 1:定义组件的两种方式:函数式和类式。函数式适用于简单组件的定义,类式适用于复杂组件的定义。而简单与复杂的...

  • 深入理解React 组件状态(State)

    React 的核心思想是组件化的思想,应用由组件搭建而成,而组件中最重要的概念是State(状态),State是一...

  • 深入理解React 组件状态(State)

    React 的核心思想是组件化的思想,应用由组件搭建而成,而组件中最重要的概念是State(状态),State是一...

  • React组件

    组件 组件是React的核心、精髓。组件有输入、输出以及自身状态,分别对应props、render、state,相...

  • react学习笔记--state以及setState

    在react中通过state以及setState() 来控制组件的状态。 state state 是 react ...

  • 浅谈react中的state和props

    1、state的作用 state是React中组件的一个对象,React中,更新组件的state,会导致重新渲染用...

  • React基础

    react 教程 react 组件介绍 react state 介绍 react Props 介绍 React:组...

  • 可控组件与不可控组件

    核心区别:值与state是否对应。 可控组件的好处: 复合React数据流 数据在state中,修改跟使用更加方便...

  • React内部状态state

    state   React组件的数据分为两种:props和state,props是组件的对外接口,state是组件...

  • react之剖析setState

    react是通过state管理组件,state的变化会导致组件的更新,而state的变化则是通过setState(...

网友评论

      本文标题:react学习(10)组件实例三大核心:state

      本文链接:https://www.haomeiwen.com/subject/gvdawrtx.html