事件风暴结束,林昊被导师零号引领至一座断壁残垣的城市——传说中的组件之城(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(属性) 的思想雏形。
function Button(text, color) {
return `;">${text}`;
}
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("这里是主内容区域
");
组件可以组合、嵌套,构成更复杂的界面。
导师零号授予三条“拼图圣律”:
例子:不要写一个 300 行的
,而要拆成 等。
林昊远远望见一道奇特光门,上面刻着 “React” 的符号。
导师微笑着说:“这只是你掌握拼图术的开始,前方还有 JSX、生命周期、状态管理……不过你已具备了构建组件世界的基本能力。”
组件搭建好后,林昊将前往神秘的“数据幻域”,探索状态(state)、数据绑定与响应式世界的奥秘……