Add simple yew frontend
This commit is contained in:
parent
a0e8cfe5f9
commit
bbaf01dafe
26 changed files with 711 additions and 31 deletions
47
project/frontend/src/main.rs
Normal file
47
project/frontend/src/main.rs
Normal file
|
@ -0,0 +1,47 @@
|
|||
use yew::prelude::*;
|
||||
|
||||
struct App {
|
||||
clicked: bool,
|
||||
onclick: Callback<ClickEvent>,
|
||||
}
|
||||
|
||||
enum Msg {
|
||||
Click,
|
||||
}
|
||||
|
||||
impl Component for App {
|
||||
type Message = Msg;
|
||||
type Properties = ();
|
||||
|
||||
fn create(_: Self::Properties, link: ComponentLink<Self>) -> Self {
|
||||
App {
|
||||
clicked: false,
|
||||
onclick: link.callback(|_| Msg::Click),
|
||||
}
|
||||
}
|
||||
|
||||
fn update(&mut self, msg: Self::Message) -> ShouldRender {
|
||||
match msg {
|
||||
Msg::Click => {
|
||||
if self.clicked {
|
||||
self.clicked = false;
|
||||
} else {
|
||||
self.clicked = true
|
||||
}
|
||||
true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn view(&self) -> Html {
|
||||
let button_text = if self.clicked { "Clicked!" } else { "Click me" };
|
||||
|
||||
html! {
|
||||
<button onclick=&self.onclick>{ button_text }</button>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
yew::start_app::<App>();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue