{{ state.selected.name|capfirst }}
{{ state.selected.description }}
{% else %}Welcome to Hyrule Monster Guide!
← Select a monster to learn more
{% endif %}Esta es una técnica básica para la creación de secuencias de comandos mientras se usa Modulo: crear funciones que le permitan modificar el estado usando JavaScript. En este caso, realiza una operación muy sencilla: \\\"Guarda este monstruo para más tarde\\\". Más precisamente, asigna la variable de estado \\\"seleccionada\\\" a la carga útil dada. De esta manera, la variable de estado \\\"seleccionado\\\" se convierte en una especie de \\\"alijo\\\" para cualquier monstruo que se acaba de seleccionar de la API.
Ahora, agreguemos otra pieza del rompecabezas: adjuntar el evento de clic. Vea abajo:
Esto se hizo con la sintaxis del archivo adjunto del evento (@click:=, en este
caso), y un atributo de carga útil, que nos permite pasar el monstruo que estamos eligiendo al hacer clic en esta imagen. Los eventos y las etiquetas de Script pueden ser temas confusos si eres nuevo en JavaScript (¡e incluso si no lo eres!), así que lee detenidamente los ejemplos en esta página para obtener más ejemplos sobre el uso de componentes de Script y cómo adjuntar eventos.
Finalmente, rendericemos condicionalmente la información del monstruo cuando se selecciona un monstruo:
{% if state.selected %}{{ state.selected.name|capfirst }}
{{ state.selected.description }}
{% else %}Welcome to Hyrule Monster Guide!
← Select a monster to learn more
{% endif %}
Esto mostrará inicialmente el mensaje de \\\"Bienvenida\\\" (ya que state.selected comienza como nulo). Luego, tan pronto como alguien haga clic en la imagen de un monstruo, la variable state.selected ya no será nula y
en su lugar, el contenido se mostrará formateado con etiquetas h1 y p, con algunos ajustes aplicados (|capfirst pone la primera letra en mayúscula).
Combinándolo todo, luego envolvemos todo en una pantalla: cuadrícula para crear el diseño de lado a lado y un desbordamiento: automático al div izquierdo de la barra de desplazamiento. Finalmente, podemos agregar algunos ajustes finales de CSS al segundo div (relleno, margen y gradiente lineal) y obtenemos los siguientes resultados que se pueden incrustar en cualquier lugar:
{% 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 %}
Espero que hayas disfrutado este tutorial. Si es así, ¡siguenos para ver más como este!
","image":"http://www.luping.net/uploads/20241102/173050560767256b87e2a15.png","datePublished":"2024-11-08T21:33:11+08:00","dateModified":"2024-11-08T21:33:11+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}¡Hola a todos! Estoy de vuelta con los tutoriales de Modulo después de una pausa de verano. Tengo muchos más tutoriales en proceso, así que estad atentos. Dicho esto, si tienes alguna idea particular para mi próximo tema, ¡asegúrate de hacérmelo saber en los comentarios!
Mi último tutorial fue un tutorial súper rápido y divertido "solo HTML, sin JS" sobre el componente Pokémon Dance Party basado en API en menos de 30 líneas de código de componente web HTML. Algunos de mis tutoriales anteriores eran un poco más serios, como este tutorial más avanzado sobre la gestión del estado público y privado. Si eso suena un poco aburrido, entonces estás de suerte, porque el tutorial de hoy es otro divertido y sobre otro videojuego muy querido... ¡Zelda: Breath of the Wild!
Por supuesto, como siempre, las técnicas aprendidas en este tutorial son aplicables a cualquier API, ¡así que sigue leyendo para aprender más sobre una galería basada en API!
Este tutorial es 100% gracias a la maravillosa API Hyrule Compendium, gratuita, con licencia MIT y generosamente hospedada por Aarav Borthakur, que es una base de datos divertida y mantenida por fanáticos y una API para recuperar información de la franquicia Zelda: Breath of the Wild y medios de comunicación. Usaremos el punto final "Monsters", disponible aquí: https://botw-compendium.herokuapp.com/api/v3/compendium/category/monsters
Pruébalo ahora, en menos de 30 segundos: ??? ¿Quieres saltar adelante? Desplácese hasta el final y copie las 39 líneas de código HTML en cualquier archivo HTML local y luego ábralo en su navegador. Modulo no tiene dependencias e incluso se ejecuta integrado en archivos HTML locales, ¡así que es realmente así de fácil!
Comencemos con solo 6 líneas de código, con un StaticData y una Plantilla para mostrarlo:
API DATA: {{ staticdata|json:2 }}
En este fragmento, tenemos una
Intenta ejecutar ese fragmento. ¿Ves los datos resultantes? Tendremos que recorrer eso con un bucle for.
Ahora que podemos ver que un atributo .data contiene una Matriz de Objetos, recorrámoslo y generemos una galería:
{% for monster in staticdata.data %} {% endfor %}
Esto generará muchas etiquetas img, cada una con un src= asignado a las propiedades de "imagen" de los Objetos en el JSON original Array, y el {% para %} etiqueta-plantilla es la sintaxis para duplicar un poco de HTML para cada elemento de la matriz (sin mencionar cada índice, por ejemplo, un número que cuenta desde 0). Para practicar más, el bucle for tiene muchos ejemplos interactivos en la parte 4 del tutorial de Modulo.js.
Lo siguiente más importante que debemos hacer es crear una nueva etiqueta Script, que podemos usar para escribir una función JavaScript simple de una línea:
Esta es una técnica básica para la creación de secuencias de comandos mientras se usa Modulo: crear funciones que le permitan modificar el estado usando JavaScript. En este caso, realiza una operación muy sencilla: "Guarda este monstruo para más tarde". Más precisamente, asigna la variable de estado "seleccionada" a la carga útil dada. De esta manera, la variable de estado "seleccionado" se convierte en una especie de "alijo" para cualquier monstruo que se acaba de seleccionar de la API.
Ahora, agreguemos otra pieza del rompecabezas: adjuntar el evento de clic. Vea abajo:
Esto se hizo con la sintaxis del archivo adjunto del evento (@click:=, en este
caso), y un atributo de carga útil, que nos permite pasar el monstruo que estamos eligiendo al hacer clic en esta imagen. Los eventos y las etiquetas de Script pueden ser temas confusos si eres nuevo en JavaScript (¡e incluso si no lo eres!), así que lee detenidamente los ejemplos en esta página para obtener más ejemplos sobre el uso de componentes de Script y cómo adjuntar eventos.
Finalmente, rendericemos condicionalmente la información del monstruo cuando se selecciona un monstruo:
{% if state.selected %}{{ state.selected.name|capfirst }}
{{ state.selected.description }}
{% else %}Welcome to Hyrule Monster Guide!
← Select a monster to learn more
{% endif %}
Esto mostrará inicialmente el mensaje de "Bienvenida" (ya que state.selected comienza como nulo). Luego, tan pronto como alguien haga clic en la imagen de un monstruo, la variable state.selected ya no será nula y
en su lugar, el contenido se mostrará formateado con etiquetas h1 y p, con algunos ajustes aplicados (|capfirst pone la primera letra en mayúscula).
Combinándolo todo, luego envolvemos todo en una pantalla: cuadrícula para crear el diseño de lado a lado y un desbordamiento: automático al div izquierdo de la barra de desplazamiento. Finalmente, podemos agregar algunos ajustes finales de CSS al segundo div (relleno, margen y gradiente lineal) y obtenemos los siguientes resultados que se pueden incrustar en cualquier lugar:
{% 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 %}
Espero que hayas disfrutado este tutorial. Si es así, ¡siguenos para ver más como este!
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3