vue实现AI问答Markdown打字机效果

上线效果

功能清单

  • AI问答,文字输出跟随打字机效果
  • 格式化回答内容(markdown格式)
  • 停止回答,复制回答内容
  • 回答时自动向下滚动
  • 全屏切换
  • 历史问答查看

主要技术

  • vue @2.7.1
  • markdown-it @14.1.0
  • @microsoft/fetch-event-source @2.0.1
  • highlight.js @10.7.1

实现思路

  • 后台接口支持流式返回也就是 :Accept: 'text/event-stream' 请求头
  • 前端通过fetch-event-source请求数据,也可以通过axios,但是要进行转换
  • 前端通过markdwon-it结合highlight.js显示返回的数据,并高亮和格式化代码

核心代码

1.markdown使用

2.接口请求

通过 onmessage方法,返回接口数据,拼接后渲染。

避坑

  • 调试模式下要关闭compress,否则不会返回流,会一次性返回,无法实现打字机效果,参考如下图:
  • markdown输出后,代码无法靠左对齐,无法像下图这样:

注意添加样式:

总结

至此一个AI问答打字机效果的功能就实现了,核心在于:流式输出,markdown 格式化

如果你觉得看完有价值,可以免费点个赞👍,也可以评论区一起学习交流。

相关推荐
lyc23333319 分钟前
鸿蒙界面镜像测试:让RTL布局「正反都好看」
前端
lyc23333319 分钟前
鸿蒙IPCKit:当远端进程「消失」时,如何优雅地「收拾残局」?
前端
我怎么能这么帅气20 分钟前
Node.js 多核战争:child_process vs cluster vs worker_threads 终极对决
前端·后端·node.js
市民中心的蟋蟀20 分钟前
第九章 案例 3 - Valtio 【下】
前端·javascript·react.js
麦当_20 分钟前
Vite 项目 Icon 解决方案
前端·javascript·vite
北辰alk22 分钟前
Vue项目搜索引擎优化(SEO)完全指南:从原理到实践
vue.js
lyc23333325 分钟前
鸿蒙应用本地化:伪本地化测试的「照妖镜」法则
前端
工呈士27 分钟前
React 路由管理与动态路由配置
前端·react.js·面试
梁高强28 分钟前
一款更轻量、更自然,同时性能更强的前端框架
前端
北辰alk28 分钟前
Vue CLI 中常用的加载器及其配置详解
vue.js