当前位置: 首页 > 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

相关文章:

  • 鹰盾加密虚拟机保护技术的深度解析:从指令级虚拟化到动态对抗系统
  • 【一文理解】下采样与上采样区别
  • 代码随想录算法训练营第60期第六十四天打卡
  • 什么是数据转换?数据转换有哪些方式?
  • C++ 智能指针实现原理
  • 香橙派3B学习笔记9:Linux基础gcc/g++编译__C/C++中动态链接库(.so)的编译与使用
  • Mybatisplus3.5.6,用String处理数据库列为JSONB字段
  • 【CF】Day80——Codeforces Round 872 (Div. 2) C⭐D (思维 + 模拟 | 树 + 思维 + 组合数学 + 分数取模)
  • 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
  • 【valse2025】CV与ML领域重要进展
  • python打卡训练营打卡记录day50
  • 【Java工程师面试全攻略】Day7:分布式系统设计面试精要
  • 蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
  • 聊聊 Pulsar:Producer 源码解析
  • python打卡day50
  • 常见的http状态码
  • 重温经典算法——二分查找
  • Word中如何对文献应用的格式数字连起来,如:【1-3】
  • 【SQL学习笔记3】深入理解窗口函数的用法
  • Java SE - 数组
  • wordpress 分享后可见/免费seo快速排名系统
  • 网站建设找谁做/百度seo学院
  • 松江公司做网站/无锡百度公司代理商
  • 中国防疫政策马上要变化了/公司网站优化
  • 大连网站建设讯息/杭州seo网络推广
  • 南京科技网站设计多少钱/百度首页排名优化平台