问题标签 [yew]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
460 浏览

generics - 如何泛化 Yew Web 请求

我试图弄清楚如何从 yew 示例中使这个 Web 请求代码通用反序列化类型和枚举的变体。

据我所知,这似乎非常接近,但我在编译器之后陷入了一种循环:

与呼叫站点:

产生:

奇怪的是,如果我从参数列表中删除 error_msg 并简单地进行硬编码Msg::TagsLoadError,它将编译但请求不会运行。‍♂️</p>

0 投票
1 回答
872 浏览

model-view-controller - 如何使用 Rust 和 Yew Crate 实现有状态的应用导航?

我正在尝试构建一个带有导航选项卡的应用程序,并尝试使用最佳方式为整个应用程序提供状态。目前这些选项卡是功能性的,但我正在努力实现一种方法,使用 Yew 前端单页应用程序框架通过 rust 中的状态映射和恢复选项卡导航。如何将这些选项卡及其各自的上下文部分链接到状态?

github上的源文件:

我的目标是:

使用 Rust 和 Yew crate 实现有状态的选项卡导航。

我设置了一个 toggle_tab 函数,它使用 STDweb 库通过 , 类迭代现有的tabcontentHTML set attribute ("style", "display: none;")。然后我根据唯一的类名进行匹配(通过函数输入并onclick从退出的 HTML 中调用)。

Github 上的 Yew 示例中,我知道我可能需要将存储实现为状态并将状态实现为模型。用 Yew & Rust 实现应用导航的好方法是什么?

HTML 和切换功能:

源代码

如果看到更多代码有帮助,我在这里上传了当前源代码https://github.com/robust-systems/Rust_MVC/blob/master/src/components/tabs_level_1.rs

这非常重要,非常感谢您的任何指导。

应用外观

切换标签功能

html代码

模型、状态、消息、过滤器

我意识到这是一个相当抽象和冗长的问题,所以如果取得任何进展,我会在这里更新。

0 投票
2 回答
224 浏览

html - Yew 错误 – 只允许一个根 html 元素

我遇到了 Yew 库的组件机制的问题。如果我在主模型的 html 宏的宏中包含任何其他 html 代码,编译器会抱怨“只允许一个根 html 元素”。

我的结构如下:

main.rs

组件/导航.rs

我怀疑 html 宏在 html 标签周围添加了一个 -tag 或整个 index.html,从而导致了“双”html 标签。但是,我怎样才能避免这种情况,或者在使用组件时我错过了什么?

0 投票
1 回答
490 浏览

c - Rust ffi + wasm (yew -> cargo web start) -> 致命错误:'math.h' 文件未找到

我目前正在使用 C 和 Rust 开发一个应用程序,当它以下列任何一种方式使用时,我都没有任何问题:

  • C -> Rust -> C (swift)
  • C -> Rust -> 示例(控制台 Rust)

但是当我想通过 Yew 中的 wasm 访问时,它变得越来越复杂

  • C -> Rust -> Yew/WASM (cargo web start)

链接器抛出错误:缺少“math.h”

维基百科引用:https ://en.wikipedia.org/wiki/C_mathematical_functions

在 Linux 和 BSD 下,数学函数(如 中声明的)分别捆绑在数学库 libm 中。因此,如果使用这些函数中的任何一个,则必须为链接器提供指令 -lm。

虽然我添加了标志,但它并没有改变任何东西......

下面我包含了build.rs来自我的库文件绑定 C -> Rust 的文件:

这是我在 yew (cargo web start) 中编译的错误日志

你有什么建议?

  • 找到一个 math.c/math.h 文件并将其包含在我的库中 c -> rust
  • 其他建议???

编辑:

我尝试了两种不起作用的方法:

  • 在我的 Mac 上从 /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/math.h 手动添加一个 math.h
  • 在我的库的 build.rs 中添加 .include("/usr/include")

这两种方式编译我的 libswe-sys(0.1.5 和 0.1.6)

这是 wasm 的 yew 日志:

  • 使用 0.1.5(手动添加 math.h)
  • 0.1.6(在我的库的 build.rs 中添加 .include("/usr/include")

这是我的 yew 设置(非常小,就像一个 hello world 项目):

货运.toml

src/main.rs

和 data.json

对于 0.1.5(手动添加 math.h)源不兼容,你有兼容的吗?

我刚刚在我的 mac book 上的搜索中尝试了第一个(7 在不同路径的搜索结果中)

编辑 2:

我找到了这个 :

https://github.com/rust-lang/libc/issues/858

根据定义,wasm32-unknown-unknown 没有 libc。如果您想使用 emscripten 或 wasi,您可以使用 wasm32-unknown-emscripten 或 wasm32-wasi,这两种方法都已在 libc crate 中得到支持。

我尝试使用 emscripter (问题编译,因为我的货物中的 lib、ansi_term 库是不兼容的)和 wasi 与 wasm32-unknown-unknown 相同的问题,math.h 的问题

0 投票
1 回答
317 浏览

html - 如何使用 Wasm 和 Rust 服务多个 HTML 页面?

我正在尝试构建一个在客户端运行 wasm 的 Web 应用程序,我想知道什么是服务多个页面的好方法。我主要关心的是性能,因为我想将应用程序拆分为上下文块,而不是让一个页面包含所有内容。

我在客户端使用带有Yew 框架的 Rust,到目前为止,我只使用yew_router来处理客户端的不同路由,但它们都在同一个 HTML 页面和 Wasm 模块中工作。现在我希望能够使用单独的 Wasm 模块为不同的 HTML 页面提供服务,但我不确定如何实现这一点。我真的必须为每个页面编写一个专用的 crate 并将它们编译为单独的 Wasm 模块,以便我可以单独为它们提供服务吗?或者有什么方法可以将一个 rust crate 编译成多个 Wasm 模块?

我当前的项目结构如下所示:

我在里面运行服务器client/,它响应index.html任何传入的GET请求。设置模块的index.html链接bundle.jspkg/client_bg.wasm

现在我基本上想用另一个 HTML 页面和另一个 Wasm 模块来做这件事,最好是来自clientcrate 中的同一个 Yew App。

谢谢

0 投票
1 回答
150 浏览

json - 不同 Json 结构的 Yew 回调

我将 yew 与 WebsocketService 一起使用,并将 jsonrpcs 发送到后端并接收相应的答案。我很难区分有效和错误的 jsonrpc 答案。在模型实现中,我通过以下方式创建回调:

WsCallback 是带有实际响应的消息:

响应是实际的 JsonRpc 格式:

适用于有效答案,但如何处理 JsonRpc 响应的错误情况,如下所示:

我可以对 Json 结构进行某种匹配吗?作为奖励问题:是否有可能解析具有不同于字符串的结果类型的有效响应?

0 投票
1 回答
52 浏览

html-encode - 如何在 Yew 应用程序中传播 html 字符串?

假设一个 Yew 应用程序当前使用,

我怎样才能以这样的方式发出它,它没有被安全地编码为 HTML,而是由客户端呈现为 HTML 并以未编码的方式发送出去。

0 投票
1 回答
808 浏览

windows - WASM/Yew - 无法解决:在 `os` 中找不到 `unix`

在 Windows 上构建 Yew 应用程序

我正在按照 本教程在 Windows 上与火箭后端一起构建一个 yew 应用程序 (尽管本教程适用于 Linux 环境)。我正在尝试使用wasm-pack. 我没有使用 Linux 子系统来构建应用程序,尽管我确实安装了它。

代码/配置

存储库

我已经安装了 wasm 工具链和 cargo make:

以下是我的工具链列表:

这是我的文件夹结构:

这是rootdir\Cargo.toml

这是rootdir\Makefile.toml

这是rootdir\frontend\Cargo.toml

这是rootdir\frontend\Makefile.toml

预期结果

我希望应用程序在运行时完成构建而没有错误 cargo makeYew 教程 似乎表明不需要其他任何东西。

实际输出

运行cargo make(从根目录)时出现许多错误,如下所示:

查看完整的错误列表

这是一种工具链之类的东西吗?我怎样才能解决这个问题?

跑步rustup update

我 从运行中得到以下输出rustup update

现在,当我cargo make从根目录运行时,我得到了不同的错误:

查看完整的错误列表存储库中的一些代码已更改。

0 投票
1 回答
55 浏览

rust - 使用 Yew 框架的 Webassembly 未捕获的错误

我正在使用 Yew 来编写一个主题切换器,通过单击循环不同的主题。这是我的更新功能。它获取存储在共享状态中的当前主题,这取决于主题循环中接下来会发生什么,共享状态中的主题值被设置为它。

但是,如果共享状态中的主题 val 是“rust”并且我再次单击调用 Msg::ChangeTheme 的按钮,则主题应该设置为“light”,但我的代码会出现恐慌,并且我会在里面得到“Uncaught Error: undefined”浏览器控制台。

0 投票
0 回答
102 浏览

rust - 如何在 Yew 应用程序中创建网格和单元格(使用 Rust 程序)

紫杉应用。

我正在尝试构建一个网格和内部网格我想在 Yew 应用程序中排列单元格。

  1. 我想让我的网格有一个 4*4 数组
  2. 单元格大小为 5px 宽度和高度
  3. 我还需要根据我在网格上解决的方法设置单元格颜色属性吗?
  4. 如何从 Grid 创建 Cell ?我可以使用 Yew 提供的 create 方法吗?

请就相同的组件结构提供建议。另外如何从网格中获取单元格的属性(颜色)并更改它