02 React 组件使用

js 复制代码
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;

更新复杂对象示例

js 复制代码
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;
相关推荐
万物得其道者成6 小时前
前端大整数精度丢失:一次踩坑后的实战解决方案(`json-bigint`)
前端·json
鹏北海6 小时前
移动端 H5 响应式字体适配方案完全指南
前端
姜太公钓鲸2337 小时前
ROM就是程序存储器,实际的存储介质是Flash闪存。上述描述中的程序存储器是什么意思?
开发语言·javascript·ecmascript
柳杉8 小时前
使用AI从零打造炫酷医疗数据可视化大屏,源码免费拿!
前端·javascript·数据可视化
凌云拓界8 小时前
前端开发的“平衡木”:在取舍之间找到最优解
前端·性能优化·架构·前端框架·代码规范·设计规范
zhengfei6119 小时前
【XSS payload 】一个经典的XSS payload
前端·xss
简单Janeee9 小时前
[Vue 3 从零到上线]-第四篇:组件化思维——把网页像积木一样拆解
javascript·vue.js·ecmascript
全栈老石10 小时前
手写一个无限画布 #1:坐标系的谎言
前端·canvas
XW010599910 小时前
4-11判断素数
前端·python·算法·素数
J2虾虾10 小时前
Spring Boot中使用@Scheduled做定时任务
java·前端·spring boot