vue3如何实现chatgpt的打字机效果


这篇文章主要介绍“vue3如何实现chatgpt的打字机效果”,在日常操作中,相信很多人在vue3如何实现chatgpt的打字机效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue3如何实现chatgpt的打字机效果”的疑惑有所帮助!接下来,请跟着小编一起来学习吧! 首先要明确一点,chatgpt 返回的文本格式是 markdown 的,最基本的渲染方式就是把 markdown 文本转换为 HTML 文本,然后 v-html 渲染即可。这里的转换和代码高亮以及防 XSS 攻击用到了下面三个依赖库:marked 将markdwon 转为 htmlhighlight 处理代码高亮dompurify 防止 XSS 攻击同时我们是可以在 markdown 中写 html 元素的,这意味着我们可以直接把光标元素放到最后!先贴代码MarkdownRender.vue可以发现最基本的 markdown 显示还是挺简单的,话就不多说了,都在注释里。我想你也许对判断消息中的代码块是否未闭合更感兴趣,那么就继续看下去吧!markdown 有两种代码块,一种是 `code` ,另一种是 ” code “,我叫他小代码块和大代码块。一开始我是想用正则去判断的,但是奈何有点复杂,我实在想不出应该如何去编写正则,让 chatgpt 写的正则也会判断失败,而且还要考虑到转义符,就算写出了正则,估计也会很复杂和难以维护。这里有请 chatgpt 简单介绍一下有限元状态机:有限元状态机(免费云主机域名finite element state machine)是一种基于状态机的建模技术,它可以将系统的行为描述为一组状态和状态之间的转换。每个状态可以对应系统内的一种状态,而状态之间的转换则表示系统内部的转换过程。有限元状态机还可以用于系统的可靠性分析和测试,同时也可以作为软件工程中的一种建模工具,帮助代码实现、测试和调试等方面。在实际应用中,有限元状态机通常是通过自动化工具生成,并且可以用于控制系统、网络通信协议、软件接口等方面的设计和测试。由于有限元状态机具有自动化生成和完备性检查等优点,因此它已经成为了一种广泛应用的建模与测试工具。请站在web前端的视角下进行介绍从前端开发的角度来看,有限元状态机可以用于构建复杂的交互式Web应用程序。在Web应用程序中,有限元状态机可以描述用户界面的不同状态(例如,登录、注册、未登录等),以及状态之间的转换(例如,从登录状态转换到注册状态)。通常情况下,前端工程师使用JavaScript实现有限元状态机,包括定义状态、定义状态之间的转换规则、处理状态转换时的行为等。使用有限元状态机可以帮助前端工程师更好地掌控应用程序的状态,从而减少代码中的复杂条件分支和无法预测的行为。同时,有限元状态机也可以帮助前端团队共同理解应用程序的状态和转换规则,从而更好地协作开发和维护Web应用程序。总之,有限元状态机是一种非常有用的前端开发技术,可以帮助前端工程师更好地构建和管理Web应用程序的状态和行为,提高应用程序的可靠性和用户体验。回到正题,我可以一点一点的从头开始去解析 markdown 文本。想象这么一个简单的状态转换流程:初始状态为文本状态。遇到代码块标记,文本状态转换到代码块开始状态。再次遇到代码块标记,从代码块开始状态转换到文本状态。不过现实要更复杂一点,我们有小代码块和大代码块。有限元状态机的妙处就在这里,当处在小代码块状态的时候,我们不需要操心大代码块和正常文本的事,他的下一个状态只能是遇到小代码块的闭合标签,进入文本状态。理解了这些,再来看我的源码,才会发现他的精妙。到此,关于“vue3如何实现chatgpt的打字机效果”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注百云主机网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: 前端vue中怎么实现文件下载

这篇文章主要介绍了前端vue中怎么实现文件下载的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇前端vue中怎么实现文件下载文章都会有所收获,下面我们一起来看看吧。前端创建超链接,通过a标签向后端发送get请求,需要给a标签添加一个d…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/04 07:07
Next 07/04 07:08

相关推荐