跳转到内容
跳到正文
Animated Fluent Emojis
菜单
简体中文

在 Preact 中使用

在 Preact 中使用 emoji 有两种方式:<fluent-emoji> 元素,或通过 preact/compat 使用 React 适配器。

元素

只需导入一次元素入口。它会注册 <fluent-emoji>,无需样式表:

import 'animated-fluent-emojis/element'

该包为 preact 的 JSX 类型补充了元素的 kebab-case attribute:

export function Greeting() {
return <fluent-emoji id="1f44b_wavinghand" size={64} play-on-hover />
}

fallback 作为带有 slot="fallback" 的子元素传入。若要响应 emoji-load、emoji-error 或 playback-end,请通过 ref 在元素上调用 addEventListener:

import { useEffect, useRef } from 'preact/hooks'
export function Greeting() {
const emoji = useRef<HTMLElementTagNameMap['fluent-emoji']>(null)
useEffect(() => {
const element = emoji.current
const onEnd = () => {
console.log('done')
}
element?.addEventListener('playback-end', onEnd)
return () => element?.removeEventListener('playback-end', onEnd)
}, [])
return (
<fluent-emoji id="1f44b_wavinghand" ref={emoji}>
<span slot="fallback">👋</span>
</fluent-emoji>
)
}

attribute、属性和事件的完整列表见使用指南。

React 适配器

在打包工具中把 react 和 react-dom 别名到 preact/compat,然后按使用指南中的说明使用 React 适配器。