问题标签 [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.
rust - 哪里有课!红豆杉的宏
我将Yew用于我的一个实验项目。
为classes!
宏导入什么模块?
rust - 如何在 Yew 应用程序中包含睡眠功能?
我正在尝试使用 Yew (Rustwasm) 构建小型应用程序。我想在 Yew 应用程序中添加睡眠功能。当我使用 use std::thread::sleep 时,出现以下错误
我正在使用如下睡眠
rust - yew app - rustwasm 错误 Uncaught RangeError: 超出最大调用堆栈大小
我试图以 Yew 应用程序解决数独问题。使用 yew="0.17.4" 版本。但低于错误
html - 如何将多个 wasm 组件挂载到页面?
我有一个正在处理的烧瓶项目。我希望能够开始用 wasm 替换一些组件。
我能够将 yew 组件安装到特定的<div>
.,但我希望能够做到这一点,并利用 Rust 的一些 GUI 库。
我能够在 iced 库中制作一些作为 WASM 工作的示例,但那是独立的。我还没有完全理解如何将它们包装在<div>
一个页面中并在一个页面上使用多个 wasm/rust/yew 组件。
下面是一个非常简单的示例,可以让您了解实现的想法。
这有效(yew 应用程序现在只是 hello world)。我喜欢.mount(div)
yew 的功能,但如果有其他方法可以做到这一点,我愿意接受。
rust - 有没有办法在红豆杉应用程序中获取系统时间/日期?
通常在 rust 应用程序中,我会使用 获得系统时间std::time::SystemTime::now()
,但这似乎不适用于 yew 应用程序。相反,我试图以静默方式(从服务器日志)读取系统时间的组件失败,并且在 Web 控制台中我得到了panicked at 'time not implemented on this platform'
.
这是有道理的,出于安全原因,客户端应用程序不能随便从操作系统中获取系统时间。但是红豆杉是否提供了一种从浏览器中获取此信息的方法?
rust - 如何让 JAWS 屏幕阅读器确认动态内容更新
最近,我一直在研究Web Assembly (WASM)、Rust和Yew。为了重现我的问题,我在下面添加了我的项目代码。代码本身没有任何问题,因此如果您不想先重现设置,可以跳过它。
设置
以下是这个 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 仍然非常流行和广泛(我也将它用于大多数事情)。因此,最好将此问题发送到正确的地址并修复它。
rust - 如何将 yew-router 与 Rocket.rs 一起使用?
我将 yew 与 rocker.rs 一起使用,我的 AppRouter 看起来像这样
对于我的火箭服务器:
现在去 /images 是给 404。我怎样才能摆脱它?
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 网络标志
我的项目结构
rust - 找不到匹配的包
我正在尝试将 API 集成到 yew 项目中并面临以下问题:
货物.toml:
我该如何解决上面的问题?