1. Home
  2. /
  3. Yew
  4. /
  5. Component with Form

Component with Form - Yew Typing CST Test

Loading…

Component with Form — Yew Code

Simple form input handling in Yew.

# yew/demo/form.rs
use yew::prelude::*;

struct Model {
	name: String,
	message: String,
}

enum Msg {
	Update(String),
	Submit,
}

impl Component for Model {
	type Message = Msg;
	type Properties = ();

	fn create(ctx: &Context<Self>) -> Self {
		Model { name: "".into(), message: "".into() }
	}

	fn update(&mut self, ctx: &Context<Self>, msg: Self::Message) -> bool {
		match msg {
		Msg::Update(val) => { self.name = val; true },
		Msg::Submit => { self.message = format!("Hello, {}!", self.name); true },
		}
	}

	fn view(&self, ctx: &Context<Self>) -> Html {
		html! {
		<div>
		<input value={self.name.clone()} oninput={ctx.link().callback(|e: InputEvent| Msg::Update(e.data().unwrap_or_default()))} />
		<button onclick={ctx.link().callback(|_| Msg::Submit)}>{"Submit"}</button>
		<p>{ &self.message }</p>
		</div>
		}
	}
}

fn main() {
	yew::start_app::<Model>();
}

Yew Language Guide

Yew is a modern Rust framework for building client-side web applications using WebAssembly (Wasm), providing a reactive component-based architecture similar to React.

Primary Use Cases

  • ▸Single-page applications (SPA) in Rust
  • ▸Interactive dashboards and data visualization
  • ▸WebAssembly-based web games
  • ▸Frontend for Rust backend services
  • ▸High-performance, low-latency web UIs

Notable Features

  • ▸Component-based architecture with reusable components
  • ▸Supports reactive updates via message passing
  • ▸Virtual DOM for efficient rendering
  • ▸WebAssembly backend for fast execution
  • ▸Strong Rust type system ensures memory safety

Origin & Creator

Yew was created by Denis Kolodin in 2018 and has since evolved with community contributions into a robust Rust frontend framework.

Industrial Note

Yew is targeted at developers seeking high-performance web applications leveraging Rust's safety, concurrency, and memory efficiency while running in the browser.

More Yew Typing Exercises

Simple Yew ComponentYew Component with Button ClickYew Component with Input BindingYew Component with Conditional RenderingYew Component with LoopYew Component with Child ComponentYew Component with TimerYew Component with Conditional and Loop Combined

Practice Other Languages

CReactPythonC++RustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypher