代码拉取完成,页面将自动刷新
A.rust构建wasm
1.构建项目
cargo new --lib hello-wasm
2.示例代码src/lib.rs
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
extern {
//在 Rust 中调用来自 JavaScript 的外部函数
pub fn alert(s: &str);
}
//提供外面调用方法
#[wasm_bindgen]
pub fn greet(name: &str) {
alert(&format!("Hello, {}!", name));
}
3.打包方式
打成可以直接调用方式
wasm-pack build --target web
打包并推送node仓库
wasm-pack build --scope 仓库名称
B.使用wasm
1.配置webpack.config.js (此示例添加到的配置webpack.common.js)
2.在 Webpack5 中,resolve.extensions 默认值为 ['.js', '.json', '.wasm']
module.exports = {
//...
experiments: {
asyncWebAssembly: true,
},
resolve: {
extensions: ['.wasm'...]
}
//...
}
3.这里用的是直接使用的方式将rust打包后的pkg的文件复制到==》wasm文件所在 src/utils/is_button-wasm
4.具体引用和调用
import init, { greet } from './is_button-wasm/is_button_wasm'
export async function run_wasm(str) {
await init()
greet(str)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。