🌞
Yew で始める Rust のフロントエンド開発
はじめに
Rust でフロントエンド開発を可能にするフレームワークの Yew を使ってみます。
最初は Rust でフロントエンド?!と思いましたが、割と前からある有名なフレームワークみたいです。
今回はチュートリアルにフォーカスしていますが、
ゆくゆくは React 等のフレームワークとパフォーマンスにどのような違いがあるかなど、調べてみたいと思います。
▼ Yew ドキュメント
下準備 & Hello, world!
チュートリアルのページに沿って、順番にやっていきます。
まずは Trunk
をインストールする必要があるようなので、以下コマンドを実行します。
$ cargo install trunk
▼ Trunk について
wasm32-unknown-unknown
をターゲットアーキテクチャに追加します。
$ rustup target add wasm32-unknown-unknown
プロジェクトディレクトリの作成をします。
$ cargo new yew-app
$ cd yew-app
cargo run
を実行する。
$ cargo run
Hello, world!
が出力されることを確認します。
Hello, world!
簡単なフロントエンドの実装
Cargo.toml
に yew を追加します。
$ cargo add yew
git
、features
を追加します。
Cargo.toml
[package]
name = "yew-app"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
yew = {version = "0.21.0", git = "https://github.com/yewstack/yew/", features = ["csr"] }
main.rs
を以下のように修正します。
#[function_component(App)]
とすることでwebコンポーネント化できるようです。
main.rs
use yew::{function_component, html, Html};
#[function_component(App)]
fn app() -> Html {
html! {
<div>
<h1>{"Hello, World!"}</h1>
</div>
}
}
fn main() {
yew::Renderer::<App>::new().render();
}
プロジェクト直下にindex.html
ファイルを作成し、以下のようなひな形を作ります。
index.html
<!doctype html>
<html lang="en">
<head></head>
<body></body>
</html>
ここまでできれば、以下のコマンドを実行し、
http://127.0.0.1:8080/
にアクセスします。
$ trunk serve
無事に出力されました👏
おわりに
今回はここまでです。
実際に触ってみての所感とか、フロントエンドの開発言語とのちがいとかをアウトプットしてみようと思います!
ではでは。
Discussion