首页 > 其他分享 >React—04—状态管理

React—04—状态管理

时间:2023-11-08 15:56:34浏览次数:34  
标签:status 状态 04 -- React active background 组件


  有时候你希望两个组件的状态始终同步更改。要实现这一点,可以将相关状态从这两个组件上移除,并把这些状态移到最近的父级组件,然后通过 props 将状态传递给这两个组件。 这被称为“状态提升”,这是编写 React 代码时常做的事。   事件一般以onXXX开头,比如内置元素div的click事件可以叫onClick,内置元素input的onChange。自定义组件的事件那可以随便取名字了,但是建议也onXXX开头。 事件处理函数一般以handleXXX开头     我看到这个需求,第一反应也是,加一个事件处理函数handleClick,然后再函数里找到dom,手动修改classname名字。 但是这类似于命令行方式的修改,是一条命令一条命令的,不是react所提倡的状态式修改。 于是我就相当,通过不同的状态控制不同的变量,然后把变量绑定到className上。  

 

import { useState } from 'react';
export default function Picture() {
  const [status,setStatus] = useState(true);
  const [outName,setOutName] = useState("background background--active")
  function handleClick(){
    setStatus(!status);
    if(!status)  setOutName('background picture--active')
    if(status) setOutName("background background--active")
  }
  return (
    <div className={outName}>
      <img
        className="picture"
        alt="Rainbow houses in Kampung Pelangi, Indonesia"
        src="https://i.imgur.com/5qwVYb1.jpeg"
        onClick={handleClick}
      />
    </div>
  );
}

 

标签:status,状态,04,--,React,active,background,组件
From: https://www.cnblogs.com/EricShen/p/17817571.html

相关文章

  • 洛谷P3046 海底高铁 巧用差分统计经过区间次数
    洛谷P3046海底高铁-差分统计经过区间次数题目贴在这里P3406海底高铁-洛谷|计算机科学教育新生态(luogu.com.cn)分析本题题干很长,但是题意理解很简单。就是给定n个节点,每次仅能在相邻的两个节点之间移动,且任意两个节点之间的高铁费用也不一样。依据题意,假设从3节点到1......
  • react菜单Menu导航栏实现
    react菜单Menu导航栏实现//定义选中的下标const[currentIndex,setCurrentIndex]=useState(initIndex)//选中样式改变(tailwind)constgetCurClass=(index)=>{returncurrentIndex==index?'hover:bg-blue-400bg-blue-400hover:text-gray-50flex......
  • React学习笔记22-订阅发布模式
    1.订阅发布模式的定义订阅发布模式简单来说就是订阅者进行订阅,发布者进行发布,发布者发布时会通过调度中心通知到每一个订阅者。订阅者根据发布的内容选择是否进行对应的操作。2.实现一个最简单的订阅发布订阅发布模式的核心就是调度中心。一个最简单的调度中心里面应该具有三个......
  • React学习笔记21-非父子通信(状态提升)
    1.状态提升(中间人模式)的定义React中的状态提升概括来说,就是将多个组件需要共享的状态提升到它们最近的父组件上.在父组件上改变这个状态然后通过props分发给子组件。2.状态提升的使用简单讲解一下下面的代码,下面模拟了一个电影列表和详情页面。进行通信的是列表的item和详......
  • CSS绘制无状态的音频波形图
    效果代码这是从codepen参考过来的一段代码,自己diy了一下。可以根据需求修改显示的条数、宽度、颜色、跳动频率及幅度。importReactfrom'react';constSoundWave=()=>{return(<divclass="sound-wave"><divclass="sound-bar"></div>......
  • React学习笔记20-父子通信(子传父)
    在React中子组件给父组件传参通过回调函数来进行。父组件给子组件传递一个回调函数作为属性。子组件在需要传递参数的地方调用父组件传递的回调函数即可。importReact,{Component}from'react'classNavbarextendsComponent{render(){return(......
  • 从零开始构建报警中心:part04 钉钉消息-webhook
    现在工作上比较常用的IM一般式钉钉企微飞书,其实使用起来都是大同小异的。这里就用钉钉来实现。使用钉钉发送信息,一般有三种形式群webhook工作通知智能机器人智能机器人方式,能实现一定的交互功能,但逻辑相对复杂,这里只是需要一个实时的钉钉消息,所以不进行讨论。添加群webhook这是一......
  • React前后端如何同构,防止重复渲染
    什么叫前后端同构?为了解决某些问题(比如SEO、提升渲染速度等)react提供了2个方法在服务端生成一个HTML文本格式的字符串。在得到了这个HTML格式的字符串之后,通常会将其组装成一个页面直接返回给用户的浏览器。到这里,服务端的活已经干完了,然后就是浏览器这边干活。浏览器拿到HTML......
  • SP15637 GNYR04H - Mr Youngs Picture Permutations(线性 dp)
    题目求方案数,考虑dp——状态设计和边界——题目告诉了一个很显然的性质:每一排从左至右保证高度单调递减每一列从后往前保证高度单调递减那么可以发现,对于每一行,每一列,一定是按高度顺序插入,并且是连续插入,因为如果不连续,就无法保证单调递减的性质同时,它给出了另一个性......
  • 自己实现一个自动检测网卡状态,并设置ip地址,源码见文章底部
    阅读本文前,请先学习下面几篇文章《搞懂进程组、会话、控制终端关系,才能明白守护进程干嘛的?》《简简单单教你如何用C语言列举当前所有网口!》《Linux下C语言操作网卡的几个代码实例!特别实用》《安卓如何设置开机自动启动某个程序?ramdisk+init.rc给你搞定》一、usb网卡应该如......