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

第三章支线五 ·组件之城 · 构建与复用的魔法工坊

主线回顾

第三章:JavaScript引擎 · 行为之火

支线

支线一 ·原能之核:语法起源
支线二 ·函数幻阶:语法召唤与逻辑封印
支线三 ·异步幻境 · 时间之缝的挑战
支线四 ·事件风暴 · 时序与响应的协奏


🎬 剧情设定:

组件之城是一座由无数独立却彼此协作的魔法建筑组成的都市。这里的建筑师们懂得“模块魔法”,他们能够把复杂的魔法体系拆解成独立组件,方便维护与复用。

城中有两大派系:
• 函数派,使用灵活、轻量的函数魔法
• 类派,传承古老、结构严谨的类魔法

林昊在城中拜访了两位大师:
• 函数派领袖·菲欧娜
• 类派长老·雷恩


🧩 组件基础:模块化的魔法构造

菲欧娜介绍了组件的基本理念:

“组件,就是能独立运作的小魔法器物。它们拥有输入(Props)和自身状态(State),并渲染输出。”

教学点:函数组件示范

function Greeting(props) {return <h1>你好,{props.name}</h1>;
}// 使用
<Greeting name="林昊" />
  • Props:组件的“输入”,只读
  • 组件像函数,根据 Props 返回 UI 结构

⚔️ 类组件:古老而强大的魔法阵

雷恩展示了类组件的魔法架构:

class Greeting extends React.Component {render() {return <h1>你好,{this.props.name}</h1>;}
}
  • 通过 this.props 访问输入
  • 类组件可以拥有生命周期和状态(后续章节详解)

🌟 状态魔法(State)的觉醒

林昊想让组件不仅能接受外部输入,还能自己“记忆”。

菲欧娜讲解了函数组件中的状态钩子:

import React, { useState } from 'react';function Counter() {const [count, setCount] = useState(0);return (<div><p>计数:{count}</p><button onClick={() => setCount(count + 1)}>点击+1</button></div>);
}
  • useState 返回一对值:当前状态和更新函数
  • 组件状态改变会触发 UI 重新渲染

🧙‍♂️ 组合与复用:打造复杂魔法阵列

雷恩补充:“组件可以嵌套与组合,造就无限可能。”

function App() {return (<div><Greeting name="林昊" /><Counter /></div>);
}
  • 组件可以作为其他组件的子元素使用
  • 组合是构建复杂页面的基石

⚙️ 第五节 · 练习任务:魔法工坊实操

  1. 创建一个函数组件 Welcome,接收 user 属性,显示欢迎语
  2. 编写一个计数器组件,支持增加和减少计数
  3. 设计一个组合组件,将欢迎组件和计数器放在一起渲染
  4. (进阶)尝试用类组件实现计数器,比较两者异同

📚 本章知识点总结

技能点说明
组件概念UI 的模块化、可复用单元
函数组件简洁,基于函数的组件定义
类组件传统组件,拥有生命周期和状态
Props组件输入,只读数据
State组件内部状态,可变,影响渲染
组合组件嵌套,实现复杂界面

🎖 林昊成就

获得称号:「构造师(Constructor)」
掌握技能:

  • 设计独立且复用的组件
  • 理解函数组件与类组件差异
  • 应用状态管理,实现交互式 UI
http://www.xdnf.cn/news/968437.html

相关文章:

  • 基于数字孪生的水厂可视化平台建设:架构与实践
  • nsight system分析LLM注意事项
  • PI数据库全面解析:原理、应用、行业案例与优劣对比
  • MySQL学习之触发器
  • Oracle实用参考(13)——Oracle for Linux ASM+RAC环境搭建(1)
  • 【AI News | 20250610】每日AI进展
  • 2.Vue编写一个app
  • Python实例题:Python计算实变函数
  • python打卡第50天
  • 题单:二分查找(==x个数)
  • 纯血Harmony NETX 5 打造趣味五子棋:(附源文件)
  • win11本地Docker部署腾讯云Docker部署若依前后端分离版
  • 解析 Go 语言中 time 包在实现定时任务时的易错点
  • Zustand 状态管理库:极简而强大的解决方案
  • c++中cout的用法 标准输出流cout使用指南
  • Linux操作系统之文件系统上
  • 编程风格良好的条件比较语句
  • 基于NOMP和降维字典的杂波空时功率谱稀疏恢复算法matlab仿真
  • PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
  • 解决helm Doris重启后由于root密码修改导致加入集群不成功的问题
  • python数据结构和算法(3)
  • 智慧医疗能源事业线深度画像分析(上)
  • 项目四.高可用集群_ansible
  • 【OSG学习笔记】Day 18: 碰撞检测与物理交互
  • opencv RGB图像转灰度图
  • yolo11-seg 推理测试infer
  • Java正则表达式:贪婪、懒惰与独占模式解析
  • Tunna工具实战:基于HTTP隧道的RDP端口转发技术
  • java 数据结构-HashMap
  • 睡岗检测算法AI智能分析网关V4全场景智能守护,筑牢安全效率防线