React实战:使用Antd+EMOJIALL 实现emoji表情符号的输入

大家好,我是Smooth,一名大二的前端爱好者,目标是想要成为一名前端开发工程师

本文是我在进行一个React项目的开发时,发表内容方面有输入表情符号的拓展需求,通过一段时间的查找及实践后,完成了此需求,同时也借此机会向大家分享我的思路。

一、确定需求

首先我们要明确我们实现的大概思路是什么

在点击输入框下方的表情键后弹出选择表情的弹窗,选择表情后关闭弹窗,选择的表情自动追加到文本域的最后一位。

image.png

二、书写样式

1. 使用antd的TextareaSpaceButton组件以及@ant-design/icons实现样式
Textarea:规定文本输入框的值、输入触发的回调函数等等。
Space:美化行内间距。
Button:定义发送的按钮。
(1)先从antd导入需要的组件和图标

image.png

(2)对组件进行排版
  1. 表情添加showModal事件来打开弹窗
  2. 给文本域添加onChange事件,每次键盘输入文字或选择表情进行输入都可以监听到
  3. Button发送按钮添加sendMessage事件
    image.png
其中 smileHover 类定义为鼠标放上去字体变蓝即可实现上图的效果

image.png

三、核心代码

1. 从antd导入Modal组件并在其内部的Row组件动态渲染Col组件

image.png

其中<Row>组件动态渲染,数组为emojiList,渲染一列列<Col>组件
emojiList数组自定义,想放哪些表情就放哪些进去
表情可通过下面EMOJIALL网址进行查找,复制黏贴即可

全部Emoji | EmojiAll

image.png

2. 进行核心代码的编写

思路:

1. 点击表情触发showModal事件打开弹窗。

image.png

2. 点击你要选择的表情后触发handleOk事件,关闭弹窗并将表情添加到文本域内。
3. 由于在Col组件渲染时给每个表情都添加了handleOk的点击事件并传入对应的表情。
4. 点击Button发送按钮触发sendMessage事件即可
关于Modal组件及实现的关键代码,已进行了注释说明

image.png

以上便是这篇教程的全部内容啦

最后

最后,我叫Smooth,在今年2022年我也会尽自己所能书写更多前端教程,期待你的关注~

最近发文计划为React相关的教学以及我自己的刷题计划
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值