返回术语

前端

组件Component

你可能会问

组件到底是什么?为什么工程师总在说「把它拆成组件」?

简单来说

可独立复用的界面单元,例如按钮、导航栏或文章卡片。

动态说明定义一次,复用出整个界面Component
Button.def

label加入购物车

color

一份定义
导航栏加入购物车
文章卡片加入购物车
登录表单加入购物车
三个实例,跟着定义一起变
同一个按钮组件被放进导航、卡片和表单,一处修改,处处生效。

01 · 先这样理解

把抽象概念放进真实场景

可独立复用的界面单元,例如按钮、导航栏或文章卡片。

换个角度想

组件像乐高积木:同一款积木块可以拼进城堡,也可以拼进飞船。块的形状和拼法是固定的,拼在哪里、拼多少次由你决定。

02 · 点击演示

一个按钮组件,怎样复用出整个页面?

突出显示的部分,就是当前概念在整条流程中负责的位置。

  1. Button 组件定义

    label按钮文字

    color主色

    onClick点击行为

    当前步骤
  2. label

    color#FF5C50

    等待进入
  3. 导航栏Button

    文章卡片Button

    登录表单Button

    等待进入
  4. 同一个 Button · 三个位置
    导航栏
    文章卡片
    登录表单
    等待 JavaScript
    等待进入
1 / 4

Define · 把一段界面封装成组件

03 · 放进真实任务

什么时候会遇到它

保持一致

全站的按钮和弹窗长得一样,因为它们来自同一份定义。

快速搭建

新页面大多是把现成组件重新组合,而不是从零开始写。

隔离改动

改导航栏只动它自己的文件,不会波及页面的其他部分。

04 · 想一想

用一个问题检查理解

站点 20 个页面的按钮都要从直角改成圆角。用了组件和没用组件,工作量差在哪里?

查看答案

有按钮组件时,只改这一个组件的样式,20 个页面同时生效;没有组件,就要找出每一处按钮逐个修改,还很容易漏掉几个。

老师提醒

最容易踩的坑

拆组件是为了复用和隔离,不是越碎越好。只出现一次、也不会再变的界面,硬拆成一层层组件反而更难读。

⌘K搜索知识库

最近收录

正在载入知识索引…