第七章:组件之城 · 重构世界的拼图术

剧情引入:废墟中的拼图城市

事件风暴结束,林昊被导师零号引领至一座断壁残垣的城市——传说中的组件之城(Component City)。这里曾是一座井然有序、功能强大的前端文明遗迹,但如今却被混乱的“复制粘贴开发法”摧毁。

零号说:“林昊,你要重建这座城,用组件拼图术将前端世界重新组装!”

什么是组件?

在前端中,组件(Component)是一块具有特定功能、样式、结构的可复用单元。每个按钮、表单、导航栏都可以封装成组件。

就像拼图,页面可以由多个组件拼接而成:

[Header]
[Sidebar]  [Content]
[Footer]

用函数封装组件:从重复中解放

林昊发现页面中有许多重复的“用户卡片”:

<div class="card">
  <h3>林昊h3>
  <p>冒险者 · 编号001p>
div>

<div class="card">
  <h3>艾拉h3>
  <p>前端女巫 · 编号002p>
div>

导师零号提示他:“提取成函数,减少重复!”

function createUserCard(name, title, id) {
  return `
    

${name}

${title} · 编号${id}

`
; } document.body.innerHTML += createUserCard("林昊", "冒险者", "001"); document.body.innerHTML += createUserCard("艾拉", "前端女巫", "002");

函数式组件 是组件化思想的起点!

Props:传递组件的灵魂

每一个组件都应该从外界接收数据,这就是 props(属性) 的思想雏形。

function Button(text, color) {
  return ``;
}

document.body.innerHTML += Button("点击我", "tomato");

组件就像函数,输入 props → 输出结构,变得灵活、通用。

组件嵌套:拼图之间的协作

林昊学会封装多个组件,再组合成页面:

function Header(title) {
  return `

${title}

`
; } function Footer() { return `
© 组件之城 · 林昊
`
; } function Layout(content) { return ` ${Header("欢迎来到组件之城")}
${content}
${Footer()} `
; } document.body.innerHTML = Layout("

这里是主内容区域

"
);

组件可以组合、嵌套,构成更复杂的界面。

组件拆分原则:保持小而美

导师零号授予三条“拼图圣律”:

  1. 单一职责(Single Responsibility):每个组件只做一件事
  2. 可复用(Reusable):组件应能传参复用
  3. 独立封装(Encapsulation):组件内部结构应对外透明

例子:不要写一个 300 行的 ,而要拆成

你可能感兴趣的:(代码之门:前端纪元,重构,状态模式)