了解如何在

模数教程回来了!

大家好!暑假结束后,我带着 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="https://img.php.cn/upload/article/000/465/014/172533612938696.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; }

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

了解如何在 了解如何在 了解如何在 了解如何在 了解如何在

以上就是了解如何在 的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 13:41:01
下一篇 2025年12月19日 13:41:07

相关推荐

  • 在 Git 中切换分支而不丢失您的工作

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

    2025年12月19日
    000
  • 如何使用 Tailwind CSS 和 JavaScript 创建持久选项卡

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

    2025年12月19日
    000
  • 开源开发

    加拿大初秋:代码和知识之旅? 介绍 大家好!我是 nonthachai plodthong,一名软件开发人员,也是一名正在完成学业的高年级学生。当我们进入加拿大初秋的清爽、多彩的季节时,我很高兴开始一系列新的博客文章,在其中分享我在科技之旅中收集的知识和经验,所有这篇文章都是相关的我在 seneca…

    2025年12月19日 好文分享
    000
  • Loadr,一种在 HTML 中无缝加载大图像的高效解决方案

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

    2025年12月19日
    000
  • 通过示例在 Unity 和 NodeJS 上的游戏中创建安全、快速的多人游戏

    介绍 规划多人游戏开发方法 – 在整个项目的进一步开发中发挥着最重要的作用之一,因为它包含了我们在创建真正高质量的产品时应该考虑的许多标准。在今天的宣言教程中,我们将看一个方法示例,该方法使我们能够创建真正快速的游戏,同时尊重所有安全和反违规规则。 所以,让我们定义我们的主要标准: 多人…

    2025年12月19日
    000
  • JavaScript 中的星空可视化

    这是一个简单、直接的可视化实现,让人想起经典的 Windows 95 星空屏幕保护程序。 它也是交互式的:您可以触摸屏幕或使用加速计来影响运动的方向。 这就是它的工作原理: 创建一堆粒子 (100),每个粒子处于随机位置。每一帧,将每个粒子进一步远离中心*。粒子距离中心越远,它就会变得越明显。这给人…

    2025年12月19日
    000
  • 流行的 Nextjs 技巧

    这是您可能需要了解的 9 个流行的 Next.js 技巧。 1。 ? 通过静态生成快速页面加载 在构建时使用 getStaticProps 预渲染页面,以确保您的网站加载速度超快。 2。 ? 动态路由 通过在文件名中使用方括号(例如 [id].js)创建动态路由,以获得灵活、简洁的 URL。 3。 …

    2025年12月19日
    000
  • 使用 Nextjs TypeScript、Prisma 和 Next-Auth 的休闲服装应用

    休闲服装应用 使用 next.js 14、tailwind css、typescript 和 prisma 的休闲服装应用。包括用户注册、产品过滤和购物车管理。对开发过程中的所有贡献开放。 入门 克隆存储库:git clone https://github.com/saidmounaim/casua…

    2025年12月19日
    000
  • 底层设计:轮询系统 – 边缘情况

    目录 案例 1 – 处理更新的版本控制情况 2 – pollid 作为 uuid 而不是主键情况 3 – 选项为空或无效案例 4 – 重复选项案例 5 – 问题长度限制案例 6 – 投票过期 请先参考以下文章: 底层设计:投票系…

    2025年12月19日
    000
  • 通过构建具有依赖关系的后端框架来学习 Nodejs

    我在 github 上为每个尝试涉足后端开发世界(不仅仅是 Node.js)的人创建了一本开源(免费)书籍 您还可以在本书的网站上以更易于理解的方式访问内容 – CacheLane – Learn Node.js the Hard Way 这将需要很长时间来构建完成版本(几个…

    2025年12月19日
    000
  • Day rom 字符串到数字:揭秘 JavaScript 类型转换

    在 javascript 中,处理不同的数据类型是一项常见任务,了解如何在它们之间进行转换可以为您省去很多麻烦。今天,我们将深入探讨 javascript 如何处理类型转换,特别关注字符串和数字。 检查数据类型 在转换任何值之前,必须了解其当前类型。 javascript 提供了一种使用 typeo…

    2025年12月19日
    000
  • 构建动态配色游戏:全面概述

    介绍 在当今快节奏的数字世界中,创建引人入胜的交互式 Web 应用程序的能力是一项非常有价值的技能。为了提高我在前端开发和算法问题解决方面的熟练程度,我接受了构建颜色匹配游戏的挑战。这个项目不仅让我展示了我的技术能力,还为用户提供了愉快的教育体验。本文深入探讨了游戏背后的技术、算法和设计原理,并展望…

    2025年12月19日
    000
  • 解锁 JavaScript 中“navigator”对象的强大功能:综合指南

    javascript 中的导航器对象是一个功能强大的工具,它允许 web 开发人员以远远超出简单网页交互的方式与用户的浏览器和设备进行交互。从访问地理位置数据到管理设备存储,导航器对象是一个功能宝库,可以增强 web 应用程序的功能。 在本博客中,我们将探索导航器对象的一些最有用的功能,并提供示例来…

    2025年12月19日
    000
  • 获取免费的 Nextjs SaaS 登陆页面模板!

    您正在推出新的 saas 产品或需要为您的登陆页面焕然一新吗?我为您准备了一些东西 — 免费的 next.js saas 登陆页面模板已准备就绪! 简洁的设计 谁可以使用它? 初创公司:通过专业的登陆页面推出您的产品。开发人员:使用现成的、干净编码的模板节省时间。营销人员:通过精心设计的着陆页来推动…

    2025年12月19日
    000
  • 如何使用 Electronjs 创建跨平台桌面应用程序

    在当今的软件开发环境中,构建跨不同操作系统无缝运行的应用程序比以往任何时候都更加重要。无论您的目标是 windows、macos 还是 linux,electron.js 都提供了一个强大的框架,可以使用熟悉的 web 技术创建桌面应用程序。本文将指导您完成设置 electron 环境、创建应用程序…

    2025年12月19日
    000
  • 发布 f `@xmldom/xmldom`

    语境 xmldom 是一个 javascript ponyfill,用于向其他运行时提供现代浏览器中存在的以下 api:将 xml 字符串转换为 dom 树 new domparser().parsefromstring(xml, mimetype) => document创建、访问和修改 d…

    2025年12月19日
    000
  • GoMock 简介:Go 中的 Mocking

    在软件开发中,测试是确保代码质量和可靠性的关键方面。然而,在编写测试时,您经常会遇到需要单独测试组件的情况,而不受其依赖项的影响。这就是模拟发挥作用的地方,对于 go 开发人员来说,gomock 是为此目的使用最广泛的框架之一。在本文中,我们将探索 gomock,一个强大的 go (golang) …

    2025年12月19日
    000
  • 如何在Windows上安装Nodejs、NPM和NVM(节点版本管理器)

    1。简介:每种语言都有自己的版本管理器。对于 Node.js,我们使用 NVM(节点版本管理器),它允许我们在同一环境中使用多个版本的 Node.js。这对于在不同版本的 Node.js 上测试我们的开发非常有用,这是 npm 和 Microsoft 推荐的良好实践。 2。关键概念:• NPM: N…

    2025年12月19日
    000
  • 使用nodejs显示“hello world”的教程

    1.安装node.js 选择v20,确保类型/位与您电脑/笔记本电脑上的系统相同,例如类型是x64,然后选择x64 要确保 Node.js 已安装,请打开命令提示符 (CMD) 并输入: 2.安装git 注意: 请勿使用任何工具。只需使用默认值即可使用 Git 的终端 – 下载 (git…

    2025年12月19日 好文分享
    000
  • 只需几分钟即可创建一个专业且具有视觉吸引力的简历网站

    ai提示示例 – 完整的聊天内容,演示如何在几个社区获得一个具有专业外观的网站 只要给我买一杯咖啡,你就会得到一个我和 AI 之间完整聊天内容的链接,这将展示如何在一分钟内通过使用 AI 和良好的提示 – 创建一个专业的、视觉上吸引人的简历网站。链接查看结果 结果描述: 一个…

    2025年12月19日
    000

发表回复

登录后才能评论
关注微信