你好!在这篇文章中我想谈谈如何使用 hmpl.js 从 api 获取 html 并在 dom 中显示。
此方法适用于任何 api,因为此模块基于 fetch api,几乎完全复制了 vanilla 解决方案的工作。
假设我们采用返回 html 响应的路由:
api 路由 - http://localhost:8000/api/test
<span>123</span>
并且,比方说,在 id 为“wrapper”的 div 中有一个任务来显示此 html。为此,您可以通过 script 标签连接 hmpl 模块并编写以下代码:
<div id="wrapper"></div> <script src="https://unpkg.com/hmpl-js/dist/hmpl.min.js"></script><script> const templatefn = hmpl.compile( `<div> { { "src":"http://localhost:8000/api/test" } } ` ); const wrapper = document.getelementbyid("wrapper"); const obj = templatefn(); wrapper.appendchild(obj.response); </script>
在这段代码中,借助 hmpl 标记,您可以生成可以在 html 中显示的 dom 节点。值得考虑的是,该节点将在 api 请求过程中自动更新。
立即学习“前端免费学习笔记(深入)”;
如果需要添加请求指示器,可以稍微扩展现有代码:
<div id="wrapper"></div> <script src="https://unpkg.com/hmpl-js/dist/hmpl.min.js"></script><script> const templateFn = hmpl.compile( `<div> { { "src":"http://localhost:8000/api/test", "on": { "trigger": "loading", "content": "<div>Loading...", } } } ` ); const wrapper = document.getElementById("wrapper"); const obj = templateFn(); wrapper.appendChild(obj.response); </script>
在本例中,当请求发送后,但 api 的响应尚未到达时,该指标就会被触发。