在Yew SSR中如何直接使用JavaScript的onclick函数?
在Yew SSR场景下直接调用JavaScript函数作为onclick事件处理函数
你可以通过以下两种方法实现需求,绕过Yew对Rust回调的强制要求:
方法一:使用AttrValue传递原生事件字符串
通过显式将属性值转为AttrValue类型,让Yew直接渲染原生HTML的onclick属性,代码示例:
use yew::AttrValue; html! { <button onclick={AttrValue::from("func(1, 2, 3)")}>{"Click me"}</button> }
这种方式在SSR时会正确输出对应的onclick属性,客户端加载后就能触发你定义的JavaScript函数。
方法二:使用raw!宏(Yew 0.20及以上版本适用)
新版本Yew提供的raw!宏可以直接插入原生HTML内容,无需经过Yew的事件处理系统,示例代码:
use yew::html::raw; html! { <button onclick={raw!("func(1, 2, 3)")}>{"Click me"}</button> }
注意:这两种方法都绕过了Yew的安全事件校验,务必确保func是可信的JavaScript函数,避免引入XSS安全风险。
内容的提问来源于stack exchange,提问作者Siriusmart
相关产品推荐
相关产品推荐

