插件窝 干货文章 如何使用 HMPLjs (fetch) 从 API 获取 HTML 并在 DOM 中显示?

如何使用 HMPLjs (fetch) 从 API 获取 HTML 并在 DOM 中显示?

wrapper script div hmpl 949    来源:    2024-10-23

你好!在这篇文章中我想谈谈如何使用 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 的响应尚未到达时,该指标就会被触发。