Rustでフロントエンドフレームワークを作ってみた。Rustでフロントエンドフレームワークを作ってみた。RustWebAssemblywasmwasm-bindgenKagura概要Rustをwasmにコンパイルすることで利用可能なフロントエンドフレームワークを作ってみました。フロントエンド用のクレートだとYewというものがすでに存在しています。Yewインストールドキュメントコメントを全然付けていないのと開発途上も良いところなので、まだCrates.ioには公開していません。githubからcloneして使うことになります。Crates.ioに公開しました。id)でエントリーポイントのidとルートコンポーネントを指定すれば良いです。)}Stateがコンポーネントの状態を表現し、Msgがイベントをupdateにバインドします。updateでMsgをもとにStateを更新し、Stateに基づきrenderでビューを作るという構造を取ります。(要はTEA)あくまでコンポーネント指向なので、コンポーネントのレンダーからさらに別のコンポーネントを呼び出すことができます。呼び出されたコンポーネントのステートは呼び出し元のステートが変わらない限りリセットされません。現状、子コンポーネントから親コンポーネントにイベントを伝搬するまともな方法が無いので、あまりコンポーネント指向としての意味を成していません。(今後対応します)subscribeで親コンポーネントにメッセージを伝搬できるようになりました。以下に子コンポーネントを使用する例を示します。MsgなクロージャでMsgにマップしています。タグ・属性の一部とonClickイベントにしか対応できていません。仮想DOMの差分レンダリングをコンポーネント単位で行っているため無駄が多いです。Webプログラマー(笑)をしています。符号化理論とかコンピュータアーキテクチャとかを勉強しています。upLoginユーザーは見つかりませんでした。