请问各位大佬,这样的需求如何实现?

如题,简单说下:

页面从某服务器获取一个列表形式的json串,然后根据json生成一排卡片,卡片上的内容就是json串里的内容,但其中不仅仅包括文本,还有一些js语句,比如点击某段文字,弹出alert或者调用某个函数。这个内容没有固定格式,完全根据返回的json串生成。

页面最上方有一个搜索框,输入字符串,下方json串里包含该内容的卡片会显示,其他的隐藏。

找到办法了,稍微变通了一下,在穿过来的json字符串里加上一些data属性,然后通过v-html同级的事件来根据这些data属性执行不同的命令。

vue实现在v-html的html字符串中绑定事件_vue.js_脚本之家 (jb51.net)

你这个问题的本质是如何使用把字符串解析为函数

可以用 `eval(x:string)`或`new Function(...args:string[])`
再或者直接在dom加上也可以(例如:`body.innerHTML = "<button onclick=\"alert('clicked')\">click me<button>"`)

最后,这种操作风险都比较高--------而且,这些百度都能查到啊…