Ir al contenido principal

Yew en otro vistazo

Yew es un marco de trabajo (framework) para crear aplicaciones web fiables y eficientes. Usa Rust como lenguaje base.

Ya hemos hablado sobre esta herramienta en una entrega anterior. Como mencionamos usa WebAssembly, lo que permite la implementación en la web para aplicaciones de cliente y servidor. Este framework ha sufrido algunos cambios y veremos cómo crear una sencilla aplicación como la vista en la anterior entrega.

Yew framework

Manos a la obra. Comencemos con un ejemplo sencillo. Pero antes los requerimientos:

  • Tener Rust.
  • Tener Cargo.

Abrimos una terminal y tecleamos:

$ rustup update

Esto actualizará la versión de Rust instalada en nuestra máquina. La instalación puede tardar varios minutos.

Instalando WebAssembly y Trunk

Además de tener la última versión de Rust (y Cargo) deberemos instalar WebAssembly y Trunk; ambos son paquetes necesarios para empezar con Yew.

Ejecutemos estos comandos para la instalación:

$ rustup target add wasm32-unknown-unknown
$ cargo install --locked trunk

Esto instalará los paquetes necesarios.

Creando un proyecto Yew

Se tratará de una simple aplicación web en la que se mostrará un botón que incremenará un número entero.

1. Crearemos un directorio del proyecto y nos ubicaremos en el:

$ cargo new yew-app
$ cd yew-app

2. Actualizamos el archivo ``Cargo.toml``:

[package]
name = "yew-app"
version = "0.1.0"
edition = "2024"

[dependencies]
yew = { version = "0.23", features = ["csr"] }

En el apartado de dependencias  indicamos la versión de Yew a usar, en este caso la versión 0.23. 

3. Actualizamos el archivo ``main.rs``

use yew::prelude::*;

#[component]
fn App() -> Html {
    let counter = use_state(|| 0);
    let onclick = {
        let counter = counter.clone();
        move |_| {
            let value = *counter + 1;
            counter.set(value);
        }
    };

    html! {
        <div>
            <button {onclick}>{ "+1" }</button>
            <p>{ *counter }</p>
        </div>
    }
}

fn main() {
    yew::Renderer::<App>::new().render();
}

De manera similar a lo que se hace con React u otras herramientas, agregamos la funcionalidad mezclando código Rust (en lugar de Javascript) con HTML.

4. Creamos la página HTML ``index.html``

<!doctype html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Yew App</title>
    </head>
    <body></body>
</html>

Esto solo servirá como para mostrar el contenido HTML.

5. Creamos el archivo ``Trunk.toml``

[serve]
# The address to serve on LAN.
address = "127.0.0.1"
# The address to serve on WAN.
# address = "0.0.0.0"
# The port to serve on.
port = 8083

Este archivo nos sirve para indicar la dirección y puerto donde se mostrará nuestra aplicación web.

6. Ejecutamos la aplicación:

$ trunk serve --open

Abrirá el navegador en la ruta: http://127.0.0.1:8083/

Con esto ya hemos creado una aplicación web con Rust y Yew.

Enlaces:

https://yew.rs/




Comentarios

Entradas populares de este blog

Rocket: un framework web para Rust

Rocket Framework es: Un framework web escrito en Rust.   Inspirado en Rails, Flask, Bottle y Yesod.  Admite el manejo de solicitudes HTTP, Web Sockets, JSON, plantillas y más. Creando un proyecto con Rocket Framework En primer lugar, verificamos la instalación de Rust en nuestras máquinas: rustc - - version Continuamos con la configuración de Rust nightly como nuestra cadena de herramientas predeterminada ejecutando el comando: rustup default nightly Si lo prefieres, una vez que configuremos un directorio de proyecto en la siguiente sección, puedes usar anulaciones por directorio para usar la versión nocturna solo para tu proyecto Rocket ejecutando el siguiente comando en el directorio: rustup override set nightly Creamos nuevo proyecto `` hola-rocket `` y nos ubicamos en el directorio creado: cargo new hola - rocket - - bin cd hola - rocket Con Cargo, agregamos la dependencia de rocket: cargo add rocket Abrimos el archivo `` Cargo.toml `` Ca...

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...

Programación Windows Batch (CMD) parte 3

Crear ciclos para efectuar operaciones tediosas nos ahorrará tiempo para realizar otras tareas. En está ocasión veremos ciclos con FOR . ¿Cuál es la síntaxis de bucle FOR en Windows Batch? Si está dentro de un archivo *.bat : FOR %%variable IN (seq) DO operaciones Si lo ejecutamos en una terminal: FOR %variable IN (seq) DO operaciones Ejemplo 1 . Recorrer una secuencia de números del 0 al 5: recorrer.bat @ echo off FOR %%i in ( 0 1 2 3 4 5 ) DO echo Hola no. %%i pause Nos imprimirá en pantalla: Hola no. 0 Hola no. 1 Hola no. 2 Hola no. 3 Hola no. 4 Hola no. 5 ¿Puedo usar contadores? Si, se pueden usar. Ejemplo 2 . Uso de contadores: contador.bat @ echo off set numeros = 1 2 3 4 5 6 7 8 9 10 set cont = 0 for %%a in ( %numeros% ) do ( echo Hola no. %%a :: Contador set /a cont+ = 1 ) echo Total: %cont% Este código nos imprimirá, además de los mensajes Hola no. 0 ..., el total de valores conta...