npm 包 preact-hashtabs 使用教程

阅读时长 6 分钟读完

介绍

preact-hashtabs 是一个基于 Preact 的快速构建标签页系统的 npm 包。和传统的标签页系统不同,preact-hashtabs 通过 URL 的 hash 来控制显示的标签。同时,它还支持主题自定义。

安装

在项目目录下运行以下命令安装 preact-hashtabs:

引入

在你的项目中引入 preact-hashtabs 的方法如下:

HashTabs 是 preact-hashtabs 中用来创建标签页组件的类,style.css 中包含了 preact-hashtabs 的默认样式,需要在 HTML 中加载。

使用

基本使用

标签页的最基本形式可以只包含一个 HashTabs 组件,示例代码如下:

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

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

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

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

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

在这个例子中,我们先定义了两个组件 HomeSettings 分别用来生成标签对应的内容。然后通过 HashTabs 组件来创建标签页。在 HashTabs 组件内,我们用 div 标签包含了 HomeSettings 组件,同时给每个 div 标签设置了一个 tab 属性。这个属性对应的值将会作为标签页的标题显示出来。

高级使用

在上一个例子中,我们只是简单地创建了标签页,并没有使用 preact-hashtabs 提供的更多功能。下面将介绍一些高级用法。

外观自定义

preact-hashtabs 提供了一些默认样式,但是你可以通过传递参数来自定义标签页的样式。以下是一些可用的参数:

  • theme: 主题样式名称,可以自己定义
  • tabPosition: 标签的位置,可选值为 'top' 或 'bottom',默认值为 'top'
  • headerClassName: header 的 class 名称
  • tabWrapperClassName: 所有标签的外层容器的 class 名称
  • tabClassName: 每个标签的 class 名称
  • panelClassName: 每个面板的 class 名称

示例代码:

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

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

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

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

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

我们通过传递参数来自定义了标签页的样式。其中 theme 参数用来定义主题样式名称,然后可以在 CSS 中自定义这个主题的样式,从而实现对标签页的外观自定义。

定制 header

preact-hashtabs 的 header 是由标签组成的,如果你要进行更多的样式定制,可以自己创建 header。以下示例代码展示了如何创建一个自定义的 header:

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

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

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

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

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

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

我们将创建好的 MyHeader 组件传递给了 HashTabsheader 属性。MyHeader 组件接受 3 个参数:

  • tabs: 所有标签的配置,包含了标题和当前显示的状态等信息
  • onChange: 切换标签时的回调函数,接受参数为切换后的标签索引值
  • activeIndex: 当前显示的标签的索引值

MyHeader 中,我们使用两个 button 标签来表示标签,然后在点击时,调用 onChange 回调函数来切换标签。当标签为当前显示标签时,我们给它应用 active 样式类。

结束语

使用 preact-hashtabs,我们可以非常方便地实现一个标签页系统,并且通过对参数和回调函数的合理使用,能够实现对标签页的外观和功能的任意定制。当然,这只是一个示例,preact-hashtabs 提供了更多的 API,我们可以根据实际需求进行使用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600560a081e8991b448dedf3

纠错
反馈