Preact 组件与元素

在本章中,我们将深入探讨 Preact 的核心概念:组件和元素。Preact 是一个轻量级的 JavaScript 库,用于构建用户界面。它的设计灵感来源于 React,并且保持了与 React 的高度兼容性,但体积更小、性能更好。

元素:UI 的基本构建块

在 Preact 中,元素是 UI 的基本单元。它们描述了屏幕上应该显示的内容。元素是纯函数调用的结果,通常看起来像这样:

元素是不可变的。一旦创建,就不能改变其子元素或属性。如果你需要更新 UI,你需要创建新的元素并将其传递给 Preact。

创建简单的元素

最简单的元素就是一个字符串标签,比如 <div><span>。这些标签可以包含文本或嵌套的其他元素。例如:

-- -------------------- ---- -------
----- -------- - ----------- -------------

-- ------
----- ------------- - -
  -----
    ---------- -- ----------
    ----------- --- --------------
  ------
--

使用属性

元素还可以拥有属性,这些属性被用来控制元素的行为和外观。属性通常以键值对的形式出现,键名是属性名,键值是属性值。例如:

在这个例子中,className 是一个属性,它指定了元素的 CSS 类名。

动态属性

属性不仅限于静态值,也可以是动态的。你可以使用 JavaScript 表达式来计算属性值。例如:

在这个例子中,name 是一个变量,我们使用模板字符串来动态生成 className 和元素内的文本。

组件:复用和抽象的利器

组件是 Preact 中用来封装可重用 UI 部分的一种方式。它们可以接收任意数量的参数(称为“props”),并且返回一个描述 UI 的元素。

函数组件

函数组件是最简单的一种组件形式。它接收 props 作为参数,并返回一个元素:

在这个例子中,Welcome 是一个函数组件,它接收 name 属性,并根据这个属性返回一个问候语。

类组件

类组件是一种更加复杂的形式,它允许你添加更多的功能,如状态管理和生命周期方法。类组件继承自 Component 类:

-- -------------------- ---- -------
------ - --------- - ---- ---------

----- ------- ------- --------- -
  -------- -
    ------ ---------- ------------------------
  -
-

----- ------- - -------- ------------ ---

在这个例子中,Welcome 是一个类组件,它通过 render 方法返回一个元素。

组件的状态

状态是一个组件内部的数据模型,它可以随着用户的交互而变化。状态可以通过 useState 钩子来管理:

-- -------------------- ---- -------
------ - -------- - ---- ---------------

-------- --------- -
  ----- ------- --------- - ------------

  -------- ----------- -
    -------------- - ---
  -

  ------ -
    -----
      ------ ------- ------- ---------
      ------- ------------------------- -----------
    ------
  --
-

在这个例子中,Counter 组件有一个状态 count,用户每次点击按钮时,count 就会增加。

默认 Props

默认 props 可以确保即使没有提供某些 props,组件也能正常工作。你可以使用默认值来为 props 设置默认值:

在这个例子中,如果 name 没有被提供,则会使用 'Guest' 作为默认值。

传递子元素

除了接收普通的 props 外,组件还可以接收子元素。子元素通常用于组合 UI:

-- -------------------- ---- -------
-------- ----- -------- -- -
  ------ ---- ---------------------------------
-

----- ------- - -
  -----
    ------- -- - ----- -------------
    --------- ---- -- - -----------
  ------
--

在这个例子中,Box 组件接收一个 children prop,它包含了所有嵌套在 Box 标签内的元素。

总结

通过学习 Preact 的元素和组件,你已经掌握了构建用户界面的基本工具。元素是 UI 的基本单元,而组件则是用来封装可重用 UI 部分的一种方式。无论是简单的函数组件还是复杂的类组件,它们都可以接收 props 来定制行为,并且可以管理自己的状态。希望这些知识能够帮助你在 Preact 中构建出精彩的 UI!

上一篇: Preact JSX 语法
下一篇: Preact Props 使用
纠错
反馈