如何从字符串而非Blade文件创建渲染后的视图?
问题答复
该需求完全可以实现,全程不需要手动编写针对特定HTML片段的字符串替换逻辑。
最简实现方案不需要引入任何第三方模板库,仅靠浏览器原生API就能完成,步骤如下:
- 先将写有
{{ something }}占位符的自定义HTML代码放入原生<template>标签内,给标签设置唯一id方便后续获取,参考结构:
<template id="customRenderTpl"> <!-- 你编写的带占位符的表格及其他HTML内容可直接放在这里 --> <table border="1"> <tr> <th>姓名</th> <th>工号</th> </tr> <tr> <td>{{ userName }}</td> <td>{{ userId }}</td> </tr> </table> </template>
- 提前准备好和占位符一一对应的键值对数据对象,比如
const renderData = { userName: '李明', userId: '10024' } - 写一次通用占位符处理逻辑即可永久复用:克隆模板的内容节点,遍历节点下的所有文本、元素属性,自动识别
{{ 占位符名 }}格式的内容,从准备好的数据对象中取对应值完成替换,处理结束后把节点插入到页面指定位置,就能得到最终渲染完成的视图。
这套通用逻辑和具体业务HTML内容解耦,写完一次之后,后续不管渲染什么结构的带占位符HTML,只需要传入对应模板和数据即可,不需要每次针对新的HTML片段手动写替换规则。
内容的提问来源于stack exchange,提问作者realtebo
相关产品推荐
相关产品推荐

