了解如何在 <lines (Modulojs) 中创建 API 支持的 Zelda BOTW 怪物画廊 Web 组件

模数教程回来了!

大家好!暑假结束后,我带着 modulo 教程回来了。我正在制作更多教程 – 请继续关注。也就是说,如果您对我的下一个主题有任何特别的想法,请务必在评论中告诉我!

我的上一篇教程是关于 api 驱动的 pokémon dance party 组件的超级快速且有趣的“仅 html,无 js”教程,不到 30 行 html web 组件代码。我之前的一些教程更加严肃一些,例如关于管理私有和公共状态的更高级教程。如果这听起来有点枯燥,那么您很幸运,因为今天的教程是另一个有趣的教程,并且是关于另一款深受喜爱的视频游戏……塞尔达:荒野之息!

当然,一如既往,本教程中学习的技术适用于任何 api,因此请继续阅读以了解有关 api 驱动的图库的更多信息!

如何使用海拉尔纲要 api

本教程 100% 感谢 aarav borthakur 提供的免费、麻省理工学院许可且慷慨托管的 hyrule compendium api,这是一个有趣的、由粉丝维护的数据库和 api,用于检索《塞尔达传说:荒野之息》系列信息和媒体。我们将使用“monsters”端点,此处可用:https://botw-compendium.herokuapp.com/api/v3/compendium/category/monsters

截屏

<img src="D:pic/2025-03-07/https://cdn.chuangxiangniao.com/2025/03/20250308013748354.png" alt="了解如何在

立即尝试一下,不到 30 秒: ??? 想跳过吗?滚动到末尾并将 39 行 html 代码复制到任何本地 html 文件中,然后在浏览器中打开它。 modulo 没有依赖关系,甚至可以嵌入本地 html 文件中运行,所以真的就是这么简单!

从数据开始

让我们从 6 行代码开始,使用 staticdata 和 template 来显示它:

   
api data: {{ staticdata|json:2 }}

登录后复制

在此片段中,我们有一个非常简单的单行 ,它转储返回的 hyrule compendium api 的 staticdata.data 属性。我们应用 |json:2 过滤器以更易读的格式显示它。 staticdata 开箱即用地支持 json(以及其他格式),您只需为其提供 api 的 url,然后就可以开始使用数据。 staticdata 是否令人困惑?尝试本教程来集成 github api,或者尝试 modulo.js 教程的“staticdata”部分中的交互式示例。

尝试运行该代码片段。看到结果数据了吗?我们需要使用 for 循环来遍历它。

创建图片库

现在我们可以看到属性 .data 包含 objectsarray,让我们循环遍历它并生成一个画廊:

    {% for monster in staticdata.data %}        @@##@@    {% endfor %}

登录后复制

这将生成许多 img 标签,每个标签都有一个 src= 分配给原始 json arrayobjects 的“image”属性,以及 {% for %} template-tag 是为数组中的每个项目复制一些 html 的语法(更不用说每个 索引 ,例如从 0 开始计数的数字)。为了进一步练习,modulo.js 教程的第 4 部分中的 for 循环有很多交互式示例。

创建状态和脚本

接下来要做的最重要的事情是创建一个新的 script 标签,我们可以用它来编写一个简单的单行 javascript 函数:

    function select(payload) {        state.selected = payload;    }

登录后复制

这是使用 modulo 时编写脚本的核心技术:创建可让您使用 javascript 修改状态的函数。在这种情况下,它执行一个非常简单的操作:“保存这个怪物以供稍后使用”。更准确地说,它将状态变量“选定”分配给给定的有效负载。这样,状态变量“selected”就变成了一种“存储”,用于存储刚刚从 api 中选取的任何怪物。

附加点击事件

现在,让我们添加另一块拼图:附加点击事件。见下图:

@@##@@

登录后复制

这是通过事件附件语法完成的(@click:=,在此
case)和有效负载属性,让我们可以通过单击此图像来传递我们选择的怪物。如果您是 javascript 新手(即使您不是!),事件和脚本标签可能是一个令人困惑的主题,因此请仔细阅读本页上的示例,了解使用脚本组件部分和附加事件的更多示例。

附加点击事件

最后,让我们在选择怪物时有条件地渲染怪物信息:

{% if state.selected %}    

{{ state.selected.name|capfirst }}

@@##@@

{{ state.selected.description }}

{% else %}

welcome to hyrule monster guide!

← select a monster to learn more

{% endif %}

登录后复制

这最初将显示“欢迎”消息(因为 state.selected 开头为 null)。然后,一旦有人点击怪物图像,state.selected 变量将不再为 null,并且
相反,内容将以 h1 和 p 标签的格式显示,并应用一些调整(|capfirst 使第一个字母大写)。

- 可嵌入片段

将所有内容结合起来,然后我们将所有内容包装在一个 display: grid 中以形成并排布局,并将一个 overflow: auto 包装到滚动条的左侧 div 中。最后,我们可以向第二个 div 添加一些最终的 css 调整(填充、边距和线性渐变),我们得到以下可以嵌入到任何地方的结果:

                        
{% for monster in staticdata.data %} @@##@@ {% endfor %}
{% if state.selected %}

{{ state.selected.name|capfirst }}

@@##@@

{{ state.selected.description }}

{% else %}

Welcome to Hyrule Monster Guide!

← Select a monster to learn more

{% endif %}
function select(payload) { state.selected = payload; }

登录后复制

希望您喜欢本教程,如果喜欢,请关注更多类似内容!

<img src="https://www.php.cn/faq/%7B%7B%20monster.image%20%7D%7D" style="max-width:90%" alt="了解如何在 <img payload:="{{ monster|json }}" alt="了解如何在 <img src="https://www.php.cn/faq/%7B%7B%20state.selected.image%20%7D%7D" alt="了解如何在 <img src="https://www.php.cn/faq/%7B%7B%20monster.image%20%7D%7D" payload:="{{ monster|json }}" style="max-width:90%" alt="了解如何在 <img src="https://www.php.cn/faq/%7B%7B%20state.selected.image%20%7D%7D" alt="了解如何在

以上就是了解如何在 <lines (Modulojs) 中创建 API 支持的 Zelda BOTW 怪物画廊 Web 组件的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2669829.html

(0)
上一篇 2025年3月7日 12:50:21
下一篇 2025年3月7日 12:50:27

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • git

    git 是一个强大的版本控制系统,用于跨多个用户管理代码并跟踪不同版本之间的更改。 安装: 从以下路径下载并安装git https://git-scm.com/download/win 登录后复制 安装后,git 可以通过各种命令用作版本控…

    2025年3月7日
    000
  • 在 Git 中切换分支而不丢失您的工作

    作为开发人员,我们经常会发现自己正在深入编写某个功能,突然有一个紧急问题需要我们立即关注。为了解决这个问题,我们需要切换 git 中的分支。但是,如果我们尚未提交当前的更改,那么这样做可能会有风险。我们可能会失去工作或面临合并冲突。 在这篇…

    2025年3月7日
    100
  • 如何使用 Tailwind CSS 和 JavaScript 创建持久选项卡

    今天是星期一,这意味着又到了教程的时间了!今天,我们正在构建一个持久选项卡组件,但这次我们将使用 JavaScript 和 Tailwind CSS,而不是像上一个教程中那样使用 Alpine JS。 为什么要持久化标签页? 持久选项卡通过…

    2025年3月7日
    200
  • Loadr,一种在 HTML 中无缝加载大图像的高效解决方案

    它是如何工作的: 它首先从 img src 加载低分辨率图像,然后在 hr-src atrbute 中加载高分辨率图像,一旦加载,就会用高分辨率图像替换低分辨率图像。 查看仓库,如果有星星就太棒了 演示 立即学习“前端免费学习笔记(深入)”…

    2025年3月7日
    200
  • 利用 JavaScript 的集合和映射实现高效的内容管理系统

    javascript 提供了几种强大的数据结构来处理数据集合。其中,map 和 set 对于某些类型的任务特别有用。在本博客中,我们将探讨使用 map 和 set 解决常见编程问题的现实示例。 理解地图和集合在深入示例之前,让我们快速回顾一…

    2025年3月7日
    200
  • 在当今时代使用 Nextjs:现代 Web 开发框架

    在当今快速发展的数字环境中,Web 开发变得比以往更加复杂和动态。开发人员不断寻找能够简化工作流程、提高性能和增强用户体验的工具。在各种可用的框架中,Next.js 已成为开发人员的最佳选择,因其易用性、灵活性和强大的功能而广受欢迎。 Ne…

    2025年3月7日
    200
  • 优化 Web 性能:最佳实践和技术

    简介说明:加载缓慢的网站和加载快速的网站之间的比较,突出显示对用户参与度的影响。 在当今快节奏的数字环境中,网络性能是直接影响用户体验、参与度和转化率的关键因素。加载缓慢的网站可能会导致更高的跳出率、更低的用户满意度,并最终导致收入损失。另…

    2025年3月7日 编程技术
    200
  • 使用 Nextjs Prisma、TailwindCSS 和 Next Auth 进行旅行预订

    旅行预订应用程序 使用 next.js 14、tailwind css、typescript 和 prisma 进行中的旅行应用程序。允许用户注册、游览浏览、预订和评论提交。对开发过程中的所有贡献开放。 入门 克隆存储库:git clone…

    2025年3月7日
    200
  • 持续测试:确保 DevOps 管道的质量

    持续测试是现代软件开发中的关键实践,尤其是在 DevOps 框架中。它涉及在整个软件交付管道中自动执行测试,以确保对代码库所做的每项更改都得到彻底验证。通过将测试集成到开发过程的每个阶段,持续测试旨在尽早发现并解决缺陷,从而显着降低生产中失…

    2025年3月7日
    200
  • 掌握 JavaScript:初学者的基本技巧

    JavaScript 是一种多功能且功能强大的编程语言,构成了现代 Web 开发的支柱。如果您是 JavaScript 新手,这里有一些基本技巧可帮助您掌握其概念并开始构建交互式 Web 应用程序: 1. 了解基础知识: 变量和数据类型:了…

    2025年3月7日
    200

发表回复

登录后才能评论