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

前言

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

在这篇文章中,我们将介绍 @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


猜你喜欢

  • npm 包 mongodb-anuj 使用教程

    前言 MongoDB 是一种非常流行的 NoSQL 数据库。它与关系型数据库相比有很大的优势,比如分布式扩展性、灵活的 schema、更好的性能等等。在 Node.js 领域,MongoDB 也是主流...

    3 年前
  • npm 包 @tessdata/amh 使用教程

    介绍 @tessdata/amh 是一个 OCR 识别工具的数据包,内置了阿拉伯字母、数字的模型,可以用于识别阿拉伯语和波斯语等含有阿拉伯字母的文字。 安装 安装 @tessdata/amh 包很简单...

    3 年前
  • npm 包 @tessdata/asm 使用教程

    概述 在前端开发过程中,使用人工智能进行图像识别和文字识别是非常常见的需求。而在进行图像和文字识别时,AI 算法通常需要使用到汇编语言编写的优化部分。然而,汇编语言的学习和使用对于大部分前端开发者来说...

    3 年前
  • npm 包 vue2-github-corners 使用教程

    介绍 Github 资源页的角落上有一个比较有意思的小东西——Github Corners。它是一个小图标,它可以用来跳转到 Github 项目的首页。在我的 Github 资源页面上,使用了它,非常...

    3 年前
  • npm 包 datasources-migrator 使用教程

    在企业级开发项目中,数据来源可能会有多种,而前端可能需要对数据做进一步处理后再展示到页面上。datasources-migrator 就是一款能够将数据源(包括 JSON 和 XML)转换为想要的数据...

    3 年前
  • npm 包 datasources-migrator-mongoose 使用教程

    引言 在前端开发中,我们经常需要使用数据库并进行数据迁移。datasources-migrator-mongoose 是一个非常好用的 npm 包,它可以帮助我们完成数据迁移工作。

    3 年前
  • npm 包 simple-keyboard-handler 使用教程

    在前端开发中,处理键盘事件是非常基础且重要的操作之一。但是,对于不同的键盘布局和浏览器兼容性等问题,处理键盘事件其实非常棘手。如果您正在寻找一种简单明了的方法来处理键盘事件,那么 npm 包 simp...

    3 年前
  • npm 包 light-carousel 使用教程

    简介 light-carousel 是一款基于 jQuery 的开源 npm 包,其可以方便地在你的 Web 页面中实现图片轮播效果。它非常易于使用,只需要引入相关的 JS、CSS 文件和依赖包即可,...

    3 年前
  • npm 包 dox-draft-js-import-markdown 使用教程

    前言 随着移动互联网的发展,Web 前端技术正变得愈发重要。作为 Web 应用的入口,前端成为了极其重要的一环。而在前端技术中,“可编辑富文本编辑器”作为 Web 开发者不可或缺的工具之一,它能够让用...

    3 年前
  • npm 包 sound.js 使用教程

    什么是 sound.js? sound.js 是一个用于管理网页中声音的 npm 包,它可以让开发者很容易地在其网页中添加声音,并控制声音的播放、暂停、循环等。 安装和使用 安装 打开命令行工具,...

    3 年前
  • npm 包 encrust 使用教程:加密前端数据保护实践

    在前端开发过程中,保护敏感数据已经变得越来越重要。而 npm 包 encrust 正是一个强大的工具,用于加密前端数据,为开发者提供了非常完整的解决方案。 encrust 的基本概述 encrust ...

    3 年前
  • npm 包 react-responsive-tables 使用教程

    随着网站变得越来越复杂,表格成为了前端开发中必不可少的一部分。然而,在不同的设备上呈现不同的表格样式是一项很繁琐的任务。这时可以借助 npm 包 react-responsive-tables 来轻松...

    3 年前
  • npm包@tradle/merge-models使用教程

    什么是@tradle/merge-models包? @tradle/merge-models是一个npm包,主要用于将多个json-schema的model合并成一个大的model对象。

    3 年前
  • npm 包 wwfc 使用教程

    npm 包是现代前端开发过程中必不可少的工具,可以方便地使用优秀的第三方库和工具。今天我们将介绍一个非常有用的 npm 包 wwfc,它可以帮助我们快速创建前端项目。

    3 年前
  • npm 包 array-most-common 使用教程

    在前端开发中,经常会需要处理数组数据并对其中出现频率较高的元素进行统计分析。这个时候,我们往往需要自己编写一些复杂的逻辑代码来完成这个任务。不过,现在我们有了一个轻松解决这个问题的解决方案:npm 包...

    3 年前
  • npm包eventemitter-async使用教程

    本文将详细介绍npm包eventemitter-async的使用教程,该包用于在Node.js环境下异步处理事件。本文将包括以下内容: 简介 安装 基础使用 案例分析 总结与展望 一、简介 eve...

    3 年前
  • npm 包 hum-drum 使用教程

    引言 hum-drum 是一个基于 Node.js 平台的 npm 包,它提供了一系列能够帮助前端开发者快速构建项目的工具和插件。这些工具和插件结合起来,可以让前端开发者更加高效地编写和维护代码,减少...

    3 年前
  • npm 包 brolly 使用教程

    介绍 brolly 是一个可以让你在运行时动态创建 Vue 组件并快速渲染的工具。它拥有非常简洁的 API,可以让你更加便捷地进行组件动态渲染的开发。 安装 在使用 brolly 之前,我们需要先进行...

    3 年前
  • npm 包 animated-umd 使用教程

    在前端开发中,动画效果是一个非常重要的部分。为了帮助开发者更加便捷地实现动画效果,已经有很多的动画库和工具包问世。其中,npm 包 animated-umd 就是一个非常不错的选择。

    3 年前
  • npm 包 @typed/core 使用教程

    npm 是一个包管理器,可以帮助前端开发人员轻松管理包和模块。@typed/core 包是一个类型安全的函数式编程库,可以提高 JavaScript 代码的可读性和可维护性。

    3 年前

相关推荐

    暂无文章