npm 包 @luchanso/emoji-mart 使用教程

阅读时长 7 分钟读完

前言

在前端开发中,展示表情图标是一项常用的业务需求。而实现这个需求最常见的方式就是利用现成的表情包库。

在这篇文章中,我们将介绍 @luchanso/emoji-mart 这个 npm 包的使用方法,通过使用这个包,我们能够方便地在前端中展示各种表情图标。

简介

@luchanso/emoji-mart 这个 npm 包是一个集成了多种不同表情包的库。该包提供了一系列 API,使得我们可以轻松地集成并使用这些表情图标。

这里列出了一些 @luchanso/emoji-mart 的特性:

  • 包含各种表情包,如:Apple、Facebook、Google、Twitter 等等
  • 支持分类、搜索等功能
  • 支持渲染自定义表情包

安装

安装 @luchanso/emoji-mart 包的方法很简单,可以直接通过 npm 进行安装:

基础使用

使用 @luchanso/emoji-mart 包展示表情图标的最简单方法,就是通过 <Picker /><Emoji /> 这两个组件。

这里是一个简单的例子,在这个例子中,我们将渲染一个表情选择器,并当用户选择某一个表情图标时,在下面显示选中的表情和其对应的 name。

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

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

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

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

可以看到,要使用 @luchanso/emoji-mart 包为我们提供的表情选择器,我们只需要在组件中引入 <Picker> 组件,并实现 onSelect 方法即可。

在上面的例子中,我们通过 useState 来记录用户选择的表情,并使用 <Emoji> 组件在界面上展示选中的表情和它的 name。

高级用法

@luchanso/emoji-mart 的高级用法主要是通过 API 实现的自定义表情包和自定义表情选择器。

自定义表情包

除了默认提供的表情包外,@luchanso/emoji-mart 还允许我们将自己的表情包进行添加和渲染。下面是一个简单的例子,其中我们将添加自定义的表情包。

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

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

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

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

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

在上面的示例中,我们定义了一个 customEmojis 数组,其中包含了我们自己定义的表情。我们可以在 NimblePicker 组件的 emojis 属性中传入该数组来渲染自定义表情包。

自定义表情选择器

如果默认的表情选择器不能完全满足你的要求,你还可以通过调用 API 来创建自己的表情选择器。

下面是一个简单的例子,在这个例子中,我们自定义了表情选择器的按钮:

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

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

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

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

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

在上面的代码中,我们使用 useRef 来引用 Button 组件,并在 Popover 中将其传递给 getPopupContainer 属性,使得弹出框能够在 Button 组件的正下方弹出。

对于 NimbleEmojiIndex 组件,我们只传入了一个表情包,这是因为我们只想要这个选择器渲染一个表情包。当然,如果你有多个表情包需要渲染,你也可以传入一个包含多个表情包的数组。

当用户选择一个表情时,handleEmojiSelect 方法将会被触发。

结论

通过本文,我们了解了 @luchanso/emoji-mart 这个 npm 包的基本用法和高级用法。通过使用这个包,我们可以在前端中很方便地展示各种表情图标,并支持自定义表情包和选择器,为我们的业务需求提供了很大的便利。

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

纠错
反馈