更新记录
1.0.0(2025-01-14)
下载此版本
模仿 AI 聊天时的打字效果,全平台支持,无任何依赖,不预设任何样式,完全由用户自定义模板和样式,简洁、灵活、高效。
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
HBuilderX 3.8.10 app-vue app-nvue |
√ |
√ |
√ |
√ |
√ |
√ |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
鸿蒙元服务 |
√ |
√ |
√ |
√ |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
bp-typer
模仿 AI 聊天时的打字效果,全平台支持,无任何依赖,不预设任何样式,完全由用户自定义模板和样式,简洁、灵活、高效。
示例
<template>
<view class="content">
<bp-typer
ref="typerRef"
:text="greeting"
auto-start
:interval="100"
@on-changed="handleChanged"
@on-completed="handleCompleted"
v-slot="{ text }"
>
<view class="chat">
{{ text }}
</view>
</bp-typer>
<view class="actions">
<button type="default" @click="$refs.typerRef.start()">开始</button>
<button type="default" @click="$refs.typerRef.restart()">重新开始</button>
<button type="default" @click="$refs.typerRef.stop()">停止</button>
<button type="default" @click="$refs.typerRef.pause()">暂停</button>
<button type="default" @click="$refs.typerRef.resume()">恢复</button>
<button type="default" @click="handleChangeText">改变文案</button>
</view>
</view>
</template>
<script>
export default {
data() {
return {
greeting: '您好!很高兴第一次与您交流。我是您的AI助理,有什么我可以帮到您的吗?请随时告诉我您的需求。',
}
},
methods: {
handleChangeText() {
this.greeting = '如果没有其他问题,我就先不打扰您了,感谢您的时间。祝您今天愉快!再见。'
},
handleCompleted() {
console.log('handleCompleted')
},
handleChanged(index) {
console.log('handleChanged', index)
},
}
}
</script>
<style scoped>
.content {
box-sizing: border-box;
width: 100vw;
height: 100vh;
padding: 30rpx;
background-color: #F3F4F5;
}
.chat {
padding: 30rpx;
background-color: #ffffff;
border: 1rpx solid #99999999;
border-radius: 12rpx;
color: #171A1D;
}
.actions {
margin-top: 40rpx;
}
</style>
API
属性
属性名称 |
说明 |
类型 |
默认值 |
text |
需要显示的文字内容,可以传入动态值。当值发生变化时,会自动重新显示文字内容 |
string |
'' |
interval |
文字字符显示时间间隔 |
number |
200 |
auto-start |
是否自动开始显示字符 |
boolean |
false |
事件
事件名称 |
说明 |
类型 |
on-changed |
每次显示字符时的回调,参数 index 为字符对应的索引 |
(index: number) => void |
on-completed |
所有字符都显示完后的回调 |
() => void |
插槽
插槽名称 |
说明 |
default |
自定义默认内容,版本为 Vue3 时,该组件不渲染任何内容,完全由用户自定义模板和样式;版本为 Vue2 时,该组件会在文字外包裹一层 <view> 标签 |
暴露
方法名称 |
说明 |
类型 |
start |
开始显示字符 |
() => void |
restart |
重新显示字符 |
() => void |
stop |
停止显示字符 |
() => void |
pause |
暂停显示字符 |
() => void |
resume |
恢复显示字符 |
() => void |