问题标签 [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 回答
164 浏览

rust - 哪里有课!红豆杉的宏

我将Yew用于我的一个实验项目。

classes!宏导入什么模块?

0 投票
1 回答
420 浏览

rust - 如何在 Yew 应用程序中包含睡眠功能?

我正在尝试使用 Yew (Rustwasm) 构建小型应用程序。我想在 Yew 应用程序中添加睡眠功能。当我使用 use std::thread::sleep 时,出现以下错误

我正在使用如下睡眠

0 投票
1 回答
116 浏览

rust - yew app - rustwasm 错误 Uncaught RangeError: 超出最大调用堆栈大小

我试图以 Yew 应用程序解决数独问题。使用 yew="0.17.4" 版本。但低于错误

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=16e0219070bd7245a50a209de0ce2cd4

0 投票
0 回答
86 浏览

html - 如何将多个 wasm 组件挂载到页面?

我有一个正在处理的烧瓶项目。我希望能够开始用 wasm 替换一些组件。

我能够将 yew 组件安装到特定的<div>.,但我希望能够做到这一点,并利用 Rust 的一些 GUI 库。

我能够在 iced 库中制作一些作为 WASM 工作的示例,但那是独立的。我还没有完全理解如何将它们包装在<div>一个页面中并在一个页面上使用多个 wasm/rust/yew 组件。

下面是一个非常简单的示例,可以让您了解实现的想法。

这有效(yew 应用程序现在只是 hello world)。我喜欢.mount(div)yew 的功能,但如果有其他方法可以做到这一点,我愿意接受。

0 投票
1 回答
270 浏览

rust - 有没有办法在红豆杉应用程序中获取系统时间/日期?

通常在 rust 应用程序中,我会使用 获得系统时间std::time::SystemTime::now(),但这似乎不适用于 yew 应用程序。相反,我试图以静默方式(从服务器日志)读取系统时间的组件失败,并且在 Web 控制台中我得到了panicked at 'time not implemented on this platform'.

这是有道理的,出于安全原因,客户端应用程序不能随便从操作系统中获取系统时间。但是红豆杉是否提供了一种从浏览器中获取此信息的方法?

0 投票
1 回答
114 浏览

rust - 如何让 JAWS 屏幕阅读器确认动态内容更新

最近,我一直在研究Web Assembly (WASM)、RustYew。为了重现我的问题,我在下面添加了我的项目代码。代码本身没有任何问题,因此如果您不想先重现设置,可以跳过它。

设置

以下是这个 Yew 示例的复制粘贴- 我将所有内容保留在链接页面上。

cargo.tompl

src/lib.rs

static/index.html

有了所有这些设置并位于 yew-app 项目目录中,您可以编译它:

然后使用任何服务器使其可用,例如:

问题

之后访问127.0.0.1:8080(或应用程序运行的任何端口)时,一切看起来都很好。我很肯定,对于有视力的人来说,一切正常。不过,对于盲人 JAWS 用户来说,并没有那么多。

这是我在页面上看到的:

单击按钮时,似乎没有任何反应。使用 JAWS 光标(本质上是鼠标指针)会产生以下输出:

即使使用 JAWS 模拟鼠标点击,似乎也没有发生任何事情。我说“出现”,因为实际上,计数器会按应有的方式更新。

如果我使用 离开网站ALT + TAB,然后切换回它,然后再次使用 JAWS 光标,我可以看到更新后的计数器。不过,JAWS 基于网站创建的虚拟文档中的计数器保持不变。JAWS 确实捕获了 -function 插入的动态内容,init()因此问题本身不在于动态 WASM 内容。相反,段落中内容的更新方式似乎存在问题。

我切换到讲述人,最初遇到了完全相同的问题。然后我切换到 NVDA,一切正常运行——计数器立即更新,即使不使用任何特殊光标。

我对段落元素进行了更改:

现在讲述人也正确处理了更新;此外,Narrator 和 NVDA 现在都自动宣布计数器更新,正如他们应该根据的那样aria-live="polite"。JAWS 没有做这些事情。

然后我尝试在 JavaScript 中实现类似的东西:

包括 JAWS 在内的所有屏幕阅读器都能正确处理此问题。

很难确定罪魁祸首在哪里。看起来 JAWS 正确地处理了组件的(初始)渲染,但组件(部分)的更新没有得到正确处理。讲述人有相同的问题,但有(虽然不雅)变通方法。NVDA 和 VoiceOver 似乎是开箱即用的唯一屏幕阅读器。

这可能是 WASM 的一个问题——我需要使用另一个 WASM 编译器来实现类似的东西才能确定。这也可能是 wasm-pack 的问题(也许 JavaScript 和其他 WASM 编译器没有包含在 wasm-pack 实现中的一些可访问性措施?)或者可能是 Yew 特定的渲染问题;不过,由于 WASM 已经编译,并且 Yew 那时没有真正的业务,我对此表示怀疑。有没有人在这方面有更多的专业知识,或者只是建议我可以尝试找出这些问题的原因?

由于 NVDA 运行良好,我当然可以告诉 Windows 用户使用它,但 JAWS 仍然非常流行和广泛(我也将它用于大多数事情)。因此,最好将此问题发送到正确的地址并修复它。

0 投票
0 回答
106 浏览

rust - 如何将 yew-router 与 Rocket.rs 一起使用?

我将 yew 与 rocker.rs 一起使用,我的 AppRouter 看起来像这样

对于我的火箭服务器:

现在去 /images 是给 404。我怎样才能摆脱它?

0 投票
0 回答
110 浏览

rust - 如何使用 wasm-bindgen 正确执行 rust 上的 js 代码

我正在使用 rust、WASM 和 yew 作为前端框架。我正在围绕 materialize-css 构建一个包装器,以在 yew 上使用它作为可重用组件的依赖项。

要使用一些 materialize-css 组件,必须对其进行初始化。例如,使用 sidenav

问题是我正在尝试使用 wasm-bindgen 运行它,如 wasm-bindgen 文档中所述,但它不起作用。或者也许我真的不明白发生了什么。

根据文档,这应该有效:

或这个:

但是它们都不起作用......在这两种情况下,代码编译都没有问题,但是在浏览器中执行时会跳转错误。

在第一种情况下,错误是Uncaught SyntaxError: import not found: init lib.js:1:9

在第二种情况下,错误是Uncaught SyntaxError: import not found: Sidenav lib.js:1:9

老实说,我不明白为什么会这样。几天来,我一直在 MDN 文档中寻找有关 WASM 和 wasm_bindgen 文档的信息,但我找不到任何对我有帮助的东西。

此外

我正在使用 --target 网络标志

我的项目结构

0 投票
2 回答
598 浏览

rust - 找不到匹配的包

我正在尝试将 API 集成到 yew 项目中并面临以下问题:

货物.toml:

我该如何解决上面的问题?

0 投票
1 回答
60 浏览

html - SVG 阴影不重复元素轮廓

我正在尝试渲染可以选择国家/地区的 SVG 世界地图。我想为onmouseenter活动添加特定国家/地区的阴影效果。一切正常,除了某些国家的阴影不完全遵循国家边界。它应该是这样工作的,整个国家都被阴影包围:好的例子

以下是某些国家/地区发生的情况,您可以看到南部边境没有阴影:不好的例子

你觉得是什么原因呢?我尝试了几个 SVG,但总是出现同样的问题。

我正在使用 Rust Yew 框架来构建它,但是,我认为问题更多与我不太了解的 SVG 或 CSS 相关。这是我的CSS:

这就是我渲染地图的方式:

我不确定在这里发布 SVG 数据是否有意义,如果有必要请告诉我。