seed-rs quickstart 简化版
Updated:
seed-rs 是rustlang实现的web前端开发框架,编译成wasm之后在浏览器上运行; 代码架构上仿照Elm, 函数式语言的风格来实现UI。 编码风格的解释可以参考文章 https://www.infoq.cn/article/Mq07yGgEhhW7xASNfEsT。 本文是seed-rs quickstart的简明版。
环境安装
第一步是要先安装rust环境, 参考rust官方文档, 运行如下命令一行搞定。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
seed-rs需要最新的rust-lang环境, 如果是之前已经安装过了, 升级用
rustup update
。- 安装wasm32-unknown-unknown编码目标:
rustup target add wasm32-unknown-unknown
- 安装cargo-make:
cargo install --force cargo-make
极简启动方式
seed-rs在github提供了example代码可以直接clone下来运行, git clone https://github.com/seed-rs/seed-quickstart.git
。
在项目目录中运行 cargo make build
来build, cargo make serve
启动开发服务,监听在 127.0.0.0:8000。 如果需要监听代码变化, 并自动构建的话, 运行 cargo make watch
。
从新开始创建项目
本文的主要内容还是从新开始创建项目。 运行命令 cargo new --lib appname
来创建一个新的lib 项目, 其中appname
是项目名称,请自行更改。
然后在项目目录下新建index.html
, body标签中包含如下内容。 标签位置id="app"
是代码运行之后内容渲染展示的位置, 和react/vue.js等类似的。
|
|
Cargo.toml
是创建项目时自动生成的文件,管理项目信息和三方依赖包等, 如同nodejs中的package.json。 在其中添加需要的依赖 asm-bindgen
,web-sys
, seed
。 crate-type 项的值设置为 "cdylib"
。
|
|
在lib.rs中添加代码
lib.rs中库类型项目的主程序文件, 内容如下。 代码是Elm风格的架构,相关的概念主要是: Model, Msg, View, Update。
|
|
运行项目
原文中还缺少一段关于运行cargo make build
所需的Makefile.toml
。 在运行make之前你肯定先有个Makefile才行,只不过cargo项目的Makefile文件是toml格式的。 可以直接从github中代码copy过来: https://github.com/seed-rs/seed-quickstart/blob/master/Makefile.toml
- build项目
cargo make build
- 本地运行
cargo make serve
, 然后浏览器访问 127.0.0.1:8000 - build release版本
cargo make build_release
, 生成的目标wasm文件会小很多