【前端】自动回复点击生成新的自动回复:下发html在前端生成dom,点击调用方法

2024-09-04 21:44

本文主要是介绍【前端】自动回复点击生成新的自动回复:下发html在前端生成dom,点击调用方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

场景

自动回复会下发内容和链接,点击链接会自动回复新的内容,像淘宝等的自动回复。
服务端下发的是html标签,如:

"<div class="link" @click="autoReply(1,2)">aaaaa</div>"

下发的内容已经写了类和方法,并传入参数。

目标:实现点击下发的链接调用对应方法,完成自动回复。

技术栈:svelte。

代码

下发的链接有link类,因此在全局写link的css样式:

 .link {color: #4ea1db;}

由于下发的链接不会经过svelte编译器,因此不会点击后自动触发方法,需要手动去调用。

直接获取链接的DOM元素,在afterUpdate生命周期(即DOM更新后)添加点击自动回复的事件。注意,在添加之前需要将之前的事件监听清空。否则会点一次触发多次。

handleAutoReply 中获取参数,手动调用getAutoReply方法。

在销毁页面onDestroy时移除事件监听。

  afterUpdate(() => {autoLink = document.getElementsByClassName('link-style');for (let i = 0; i < autoLink.length; i++) {autoLink[i].removeEventListener('click', handleAutoReply);}// 添加点击自动回复for (let i = 0; i < autoLink.length; i++) {autoLink[i].addEventListener('click', handleAutoReply);}});//   处理下发的html中的点击事件const handleAutoReply = (event) => {const replyValue = event.target.attributes[1].value; //eg:getAutoReply(809,6)const matches = replyValue.match(/\d+/g);const id = Number(matches[0]); // 809const key = Number(matches[1]); // 6getAutoReply(id, key);};onDestroy(() => {// 移除事件监听器for (let i = 0; i < autoLink.length; i++) {autoLink[i].removeEventListener('click', handleAutoReply);}});// 调取自动回复的接口const getAutoReply = (id,key)=>{ ... }

getAutoReply 方法返回自动回复的内容,把它加到自动回复的列表中。由于是svelte,需要显式地更新列表。

$ :list =[] // 响应式的声明// getAutoReply拿到结果后
list =[...list] // 显式更新列表

HTML中,如果是下发带标签的自动回复,则:

{@html listItem.content}

这篇关于【前端】自动回复点击生成新的自动回复:下发html在前端生成dom,点击调用方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1137109

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操