亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue3實(shí)現(xiàn)Emoji表情的四種方案

 更新時間:2025年01月10日 09:45:47   作者:李劍一  
聊天工具的項目開發(fā)到了表情功能,由于目前會話的輸入?yún)^(qū)域使用的是 textarea 而非富文本編輯器,所以表情功能也需要兼顧 textarea 進(jìn)行開發(fā),本文給大家簡單聊聊幾種表情的實(shí)現(xiàn)方,感興趣的小伙伴一起來看看吧

使用輸入法輸入表情

Textarea中支持接受輸入法輸入的表情,在 macOs 中直接輸入“微笑”,會直接打印出??的表情,和文字沒區(qū)別。

但是這種方案不好的點(diǎn)在于只能手輸,沒辦法達(dá)到選擇的效果。

使用Unicode編碼輸入表情

在 Unicode 編碼中存在對應(yīng)表情的編碼區(qū)間,位于基本多語言面(Basic Multilingual Plane,BMP),碼點(diǎn)在 U+1F600 到 U+1F6FF。

因?yàn)槟壳笆褂玫氖?textarea 作為輸入框,所以 Unicode 編碼在輸入框顯示出來是純文本,這就導(dǎo)致用戶很有可能出現(xiàn)誤修改。

另外會話信息的展示區(qū)域,現(xiàn)在也是直接使用的模板語法,需要在展示區(qū)使用 v-html 才能正常展示表情,否則也是純文本。

但是基于 Unicode 編碼的這種模式非常輕量,并不需要額外的庫和特殊操作。

使用自定義內(nèi)容進(jìn)行對應(yīng)

使用自定義內(nèi)容進(jìn)行對應(yīng),這應(yīng)該是QQ的表情方案(雖然我沒看過源碼,純猜測)。

QQ的輸入框在使用 “/” 進(jìn)行輸入的時候會彈出相應(yīng)的表情提示,確定以后變成表情。這里面大概率是經(jīng)歷了對特定編碼的轉(zhuǎn)換。

同理我們也可以用這種方案進(jìn)行轉(zhuǎn)換,可以使用特定的符號在系統(tǒng)中進(jìn)行解析,生成表情。

比如系統(tǒng)中寫死 “[wx]” 代表是的 ?? ,當(dāng)輸入框通過 input 事件監(jiān)聽到存在 “[wx]” 的時候,代碼將其自動轉(zhuǎn)換為 ??。

插個眼,后面把 Unicode 編碼通過這種方式實(shí)現(xiàn)一下。

使用 emoji-mart-vue 插件

使用插件是性價比最高的方案,這個插件相當(dāng)于直接把輸入的emoji集成了,無需改造原本的代碼,插入的emoji表情輸入法輸入的沒有區(qū)別。

唯一可能存在的瑕疵可能是沒辦法自定義。

安裝

npm install emoji-mart-vue-fast

使用

<template>
<Picker :data="emojiIndex" :emojiSize="18" :showPreview="false" :infiniteScroll="false" :i18n="emojiI18n"
                set="apple" @select="handlerEmoji" />
</template>

<script>
import data from 'emoji-mart-vue-fast/data/all.json';
import 'emoji-mart-vue-fast/css/emoji-mart.css'
import { Picker, EmojiIndex } from 'emoji-mart-vue-fast/src';
export default {
 components: { Picker, EmojiIndex },
    data() {
        return {
            editorValue: "",
            emojiOpen: false,
            emojiI18n: {
                search: '搜索',
                notfound: 'No Emoji Found',
                categories: {
                    search: '搜索結(jié)果',
                    recent: '經(jīng)常使用',
                    smileys: '表情與情感',
                    people: '人物與身體',
                    nature: '動物與自然',
                    foods: '食物與飲料',
                    activity: '活動',
                    places: '旅行與地理',
                    objects: '物品',
                    symbols: '符號標(biāo)志',
                    flags: '旗幟',
                    custom: 'Custom',
                    joy: '哭笑'
                }
            },
        }
    },
 computed: {
        emojiIndex() {
            return new EmojiIndex(data);
        }
    },
 methods: {
  // 選中emoji方法
        handlerEmoji(event) {
            console.log(event);
        },
 }
}
</script>

結(jié)論

想要自定義可以嘗試第三種方案,現(xiàn)成的直接第四種方案。

到此這篇關(guān)于Vue3實(shí)現(xiàn)Emoji表情的四種方案的文章就介紹到這了,更多相關(guān)Vue3實(shí)現(xiàn)Emoji表情內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • VScode中配置ESlint+Prettier詳細(xì)步驟(附圖文介紹)

    VScode中配置ESlint+Prettier詳細(xì)步驟(附圖文介紹)

    這篇文章主要介紹了VScode中配置ESlint+Prettier詳細(xì)步驟,文中通過代碼示例講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-12-12
  • vue+高德地圖寫地圖選址組件的方法

    vue+高德地圖寫地圖選址組件的方法

    這篇文章主要介紹了vue+高德地圖寫地圖選址組件的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 詳解vue數(shù)組遍歷方法forEach和map的原理解析和實(shí)際應(yīng)用

    詳解vue數(shù)組遍歷方法forEach和map的原理解析和實(shí)際應(yīng)用

    這篇文章主要介紹了詳解vue數(shù)組遍歷方法forEach和map的原理解析和實(shí)際應(yīng)用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • vue之computed的緩存特性

    vue之computed的緩存特性

    這篇文章主要介紹了vue之computed的緩存特性,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Vue組件實(shí)現(xiàn)卡片動畫倒計時示例詳解

    Vue組件實(shí)現(xiàn)卡片動畫倒計時示例詳解

    這篇文章主要介紹了Vue組件實(shí)現(xiàn)卡片動畫倒計時示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Vue實(shí)現(xiàn)Echarts圖表寬高自適應(yīng)的實(shí)踐

    Vue實(shí)現(xiàn)Echarts圖表寬高自適應(yīng)的實(shí)踐

    本文主要介紹了Vue實(shí)現(xiàn)Echarts圖表寬高自適應(yīng)的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • vue使用npm發(fā)布自己的公網(wǎng)包

    vue使用npm發(fā)布自己的公網(wǎng)包

    本文主要介紹了vue使用npm發(fā)布自己的公網(wǎng)包,通過創(chuàng)建一個簡單的npm包,本文詳細(xì)闡述了從創(chuàng)建到發(fā)布的整個過程,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • Vue3.x源碼調(diào)試的實(shí)現(xiàn)方法

    Vue3.x源碼調(diào)試的實(shí)現(xiàn)方法

    這篇文章主要介紹了Vue3.x源碼調(diào)試的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Vue組件間通信方式全面匯總介紹

    Vue組件間通信方式全面匯總介紹

    這篇文章主要介紹了Vue組件間通信方式全面匯總,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-04-04
  • vue如何使用element ui表格el-table-column在里面做判斷

    vue如何使用element ui表格el-table-column在里面做判斷

    這篇文章主要介紹了vue如何使用element ui表格el-table-column在里面做判斷問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08

最新評論