欢迎来到代码驿站!

当前位置:首页 >

详解react中的state的简写方式

时间:2022-09-04 10:40:41|栏目:|点击:

前言

什么是state

我们都说React是一个状态机,体现是什么地方呢,就是体现在state上,通过与用户的交互,实现不同的状态,然后去渲染UI,这样就让用户的数据和界面保持一致了。state是组件的私有属性。

在React中,更新组件的state,结果就会重新渲染用户界面(不需要操作DOM),一句话就是说,用户的界面会随着状态的改变而改变。

PS: state 只能在本组件中去初始化,并且 state 只能被本组件去修改和仿问,不能被外部仿问和修改,所以也可以说,state 是组件私有的。

下面介绍下react的state的简写方式吧。

state是react中用来初始化的。this.state 应该被视为一个组件的私有属性,我们的react的state的写法方式式有两种的一种是我们在官网上看到的用constructor(构造器)

 constructor(props) {
    super(props);
    this.state = {
      value: null,
    };
  }

但是在类组件中在使用state时 类会继承了React.Component

class Appt extends React.Component{
         //我们定义在这里的state就和上面的方法是一样的
         //	类中可以直接写赋值语句
              state={aff:1}
 
             render(){  
                 console.log(this);
                 //这个this就继承了React.Component
                 // 这里的this是当前组件的实例对象
                 return (
                     <div>
                       123
                     </div>
                 )
             }
       }

       ReactDOM.render(
           <Appt/>,
           document.getElementById('app')
       )

相信大家都想看看这个this打印的是何物 不急向下看

在这里插入图片描述

这个是我们的简写的state的打印this的结果我们接着看我们官网的方式打印的this的结果,

 class Appt extends React.Component{
        constructor(props) {
            super(props)
            console.log(this,11);
           // 这个是我们正常的一个初始化state的方法
            this.state={
                num: 456
            }
        }
             render(){  
                 return (
                     <div>
                       123
                     </div>
                 )
             }
       }

       ReactDOM.render(
           <Appt/>,
           document.getElementById('app')
       )

打印结果是两种方式效果是一样的

在这里插入图片描述

State: 总结

state 是组件对象最重要的属性. 值是对象(可以包含多个key-value 的组合)

上一篇:R语言学习笔记缺失数据的Bootstrap与Jackknife方法

栏    目:

下一篇:图文分析详解计算机网络TCP与UDP两者区别及原理

本文标题:详解react中的state的简写方式

本文地址:http://www.codeinn.net/misctech/212715.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有