当前位置: 首页 > news >正文

02 React 组件使用

import React, { useState } from 'react';

// 定义一个简单的函数式组件
function Counter() {
  // 使用 useState hook 来创建一个状态变量 count,并提供修改该状态的函数 setCount
  const [count, setCount] = useState(0);

  // 在点击按钮时增加计数器的值
  const incrementCount = () => {
    setCount(count + 1);
  };

  // 在点击按钮时减少计数器的值
  const decrementCount = () => {
    setCount(count - 1);
  };

  return (
    <div>
      <h2>计数器</h2>
      <p>当前计数:{count}</p>
      {/* 点击按钮时触发 incrementCount 函数 */}
      <button onClick={incrementCount}>增加</button>
      {/* 点击按钮时触发 decrementCount 函数 */}
      <button onClick={decrementCount}>减少</button>
    </div>
  );
}

// 使用 Counter 组件的例子
function App() {
  return (
    <div>
      <h1>React 组件示例</h1>
      {/* 渲染 Counter 组件 */}
      <Counter />
    </div>
  );
}

export default App;

更新复杂对象示例

import React, {useState} from 'react';

function ComplexObjectExample() {
    // 定义初始状态,一个包含姓名和年龄的复杂对象
    const [person, setPerson] = useState({name: 'John', age: 30});

    // 更新姓名的函数
    const updateName = () => {
        // 使用对象解构来创建一个新的 person 对象,并只更新姓名
        setPerson({...person, name: 'Jane'});
    };

    // 更新年龄的函数
    const updateAge = () => {
        // 使用对象解构来创建一个新的 person 对象,并只更新年龄
        setPerson({...person, age: 35});
    };

    return (
        <div>
            <h2>Person Information</h2>
            <p>Name: {person.name}</p>
            <p>Age: {person.age}</p>
            <button onClick={updateName}>Update Name</button>
            <button onClick={updateAge}>Update Age</button>
        </div>
    );
}

// 使用 Counter 组件的例子
function App() {
    return (
        <div>
            <h1>React 组件示例</h1>
            {/* 渲染 Counter 组件 */}
            <ComplexObjectExample/>
        </div>
    );
}

export default App;
http://www.dtcms.com/a/9599.html

相关文章:

  • RAFT: Adapting Language Model to Domain Specific RAG
  • 钡铼技术R40路由器助力构建无人值守的智能化污水处理厂
  • java Web餐馆订单管理系统用eclipse定制开发mysql数据库BS模式java编程jdbc
  • opencv各个模块介绍(1)
  • Visual Studio QT6 工程引入组件模块,例如:QtXml
  • LLM2LLM: Boosting LLMs with Novel Iterative Data Enhancement
  • c语言函数大全(C开头)
  • 快速区分清楚图形渲染中的AABB,KD树和BVH这些概念
  • 【C++】static关键字及其修饰的静态成员变量/函数详解
  • 代码随想录训练营Day32:● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II
  • Java 中的 Math. round(-1. 5) 等于多少?
  • 软件测试 - postman高级使用
  • leetcode35-Search Insert Position
  • Saltstack 最大打开文件数问题之奇怪的 8192
  • 如何在h5和小程序中适配iphoneX及更高版本全面屏底部的安全区
  • DP:斐波那契数列模型
  • SpringCloud Alibaba Nacos 服务注册和配置中心
  • 2024.3.9|第十五届蓝桥杯模拟赛(第三期)
  • 探索AI大模型学习的未来发展与挑战
  • flutter 单例模式
  • 【CMake】所见所闻所学
  • Java中的面向对象编程有三个重要的属性:封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)
  • Go语言实现SSE中转demo
  • 应急响应靶机训练-Web3题解
  • Linux系统部署Paperless-Ngx文档管理系统结合内网穿透实现公网访问
  • 面试笔记——MySQL(优化篇:定位慢查询、SQL执行计划、索引、SQL优化)
  • go的限流
  • 【毕设级项目】基于ESP8266的家庭灯光与火情智能监测系统——文末源码及PPT
  • 数据库迁移测试
  • 电商平台客户反馈的数据分析与应用