首页 > 其他分享 >React学习笔记11-状态(state)

React学习笔记11-状态(state)

时间:2023-10-20 11:33:08浏览次数:38  
标签:11 false Component myname React state myshow

状态就是组件的数据,由组件自己设置和更改,也就是说由组件自己维护,使用状态 的目的就是为了在不同的状态下使组件的显示不同(自己管理)

 定义状态的方法

 可以在构造函数中定义也可以直接在类中通过变量的形式来定义

/* eslint-disable eqeqeq */
import React, { Component } from 'react'

export default class App extends Component {
    /* 
      写法一
      state = {
          myshow: false,
      }
    */
    //写法二
    constructor() {
        super()
        this.state = {
            myshow: false,
            myname: 'zzz',

        }
    }
}

将状态和视图绑定的方法

通过{this.state.xxx}即可访问到对应的状态

/* eslint-disable eqeqeq */
import React, { Component } from 'react'

export default class App extends Component {
    /* 
      写法一
      state = {
          myshow: false,
      }
    */
    //写法二
    constructor() {
        super()
        this.state = {
            myshow: false,
            myname: 'zzz',

        }
    }
    render() {

        return (
            <div>
                <h1>欢迎来到React开发</h1>
                <div>{this.state.myname}</div>
            </div>
        )
    }
}

修改状态的方法

this.state 是纯js对象,在vue中,data属性是利用 Object.defineProperty 处理过的,更改data的数据的时候会触发数据的 getter 和 setter从而触发对应的回调来更新视图 , 但是React中没有做这样的处理,如果直接更改的话,react是无法得知的,所以,需要使用特殊的更改状态的方法 setState 。
/* eslint-disable eqeqeq */
import React, { Component } from 'react'

export default class App extends Component {
    /* 
      写法一
      state = {
          myshow: false,
      }
    */
    //写法二
    constructor() {
        super()
        this.state = {
            myshow: false,
            myname: 'zzz',

        }
    }
    render() {

        return (
            <div>
                <h1>欢迎来到React开发</h1>
                <div>{this.state.myname}</div>
                <button onClick={
                    () => {
                        this.setState({
                            myshow: !this.state.myshow,
                            myname: '小明'
                        })
                    }
                }>{this.state.myshow ? '取消收藏' : '收藏'}</button>
            </div>
        )
    }
}

 

 

标签:11,false,Component,myname,React,state,myshow
From: https://www.cnblogs.com/SadicZhou/p/17776549.html

相关文章

  • React学习笔记10- Ref的应用
    用法1.给标签设置ref="username"通过这个获取this.refs.username,ref可以获取到应用的真实dom2.给组件设置ref="username"通过这个获取this.refs.username,ref可以获取到组件对象 写法importReact,{Component}from'react'exportdefaultclassAppextendsC......
  • React学习笔记09- 事件处理
    React采用on+事件名的方式来绑定一个事件,注意,这里和原生的事件是有区别的,原生的事件全是小写onclick,React里的事件是驼峰onClick,React的事件并不是原生事件,而是合成事件。 事件回调的几种写法1.直接在组件内定义一个非箭头函数的方法,然后在render里直接使用onClick={......
  • 29、Flink SQL之DESCRIBE、EXPLAIN、USE、SHOW、LOAD、UNLOAD、SET、RESET、JAR、JOB
    文章目录Flink系列文章四、SHOW语句1、java示例2、FlinkSQLcli示例3、showtables1)、语法2)、示例4、SHOWCREATETABLE5、SHOWCOLUMNS1)、语法2)、示例6、SHOWJARS7、SHOWJOBS五、LOAD语句1、语法2、Java示例3、FlinkSQLCli示例六、UNLOAD语句1、语法2、java示例3、Flink......
  • 29、Flink SQL之DESCRIBE、EXPLAIN、USE、SHOW、LOAD、UNLOAD、SET、RESET、JAR、JOB
    Flink系列文章1、Flink部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接13、Flink的tableapi与sql的基本概念、通用api介绍及入门示例14、Flink的tableapi与sql之数据类型:内置数据类型以及它们的属性15、Flink的tableapi与s......
  • 态路小课堂丨400G QSFP112—助力IDC数据中心升级
    TARLUZ态路来源网络随着IDC数据中心不断的发展,光模块向着更高速率、更小的尺寸和更低损耗不断升级,以适应不同使用场景。光模块一般采用提高单通道比特速率、增加通道数或改变调制方式来实现光模块的速率升级。如上图所示,400G光模块有56GPAM4和112GPAM4两种调制方案,本文态路为您介......
  • 11、Linux文件与目录权限
    Linux文件与目录权限目录Linux文件与目录权限一、Linux文件基本属性1、文件介绍2、Linux文件属主和属组二、更改文件属性1、chmod命令2、chown命令3、chgrp命令4、chattr命令5、lsattr命令三、其他1、权限掩码2、特殊权限①SBIT(粘滞位)②SUID(属主特殊权限)③SGID(属组特殊权限)3、fi......
  • android 升级到java11,升级到androidx的操作方法
    androidstudioAndroid9(28)升级到Android10(29)Androidx小计_sdk29对应依赖androidx.appcompat:appcompat-resources是-CSDN博客java.lang.NoClassDefFoundError:Failedresolutionof:Landroidx/appcompat/R$drawable;-简书(jianshu.com)......
  • 文心一言 VS 讯飞星火 VS chatgpt (116)-- 算法导论10.3 1题
    一、用go语言,画图表示序列(13,4,8,19,5,11),其存储形式为多数组表示的双向链表。同样画出单数组表示的形式。文心一言:在Go语言中,我们无法直接画图,但我可以帮助你描述如何使用Go语言来表示和操作多数组表示的双向链表和单数组表示。首先,多数组表示的双向链表可以表示为以下的数据结构:......
  • L1-011记录
    关于这道题目,今天其实有自己的一些思路 L1-011A-B分数20全屏浏览题目切换布局作者 陈越单位 浙江大学本题要求你计算A−B。不过麻烦的是,A和B都是字符串——即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。输入......
  • win11下部署tomcat闪退的解决
    最近学校开了软件测试,需要部署个tomcat才能做作业可是学校发的tomcat是压缩包形式,不知道为啥死活弄不明白jdk和jre的路径,因此点startup.bat会闪退于是用sublime打开startup.bat,在最后end之后加上一行pause,这样看出是在运行某个.jar文件时出问题,因此猜测是java环境配置问题(上古老......