之前按钮组件算是简单尝试,决定试下稍微复杂一点的评分(Rate)组件。实现部分依旧搬照Element UI的实现,主要是熟悉Rust以及Yew这个框架的使用。
组件的属性定义在YewButtonProps
这个结构体,里面的属性的默认值的定义使用了#[prop_or_default]
和#[prop_or(0.0)]
这样的属性宏。属性宏有点像Java里面的注解,很奇怪的是如同Java书籍很少讲注解一样,实际中大量使用注解。Rust也是,手头的《Rust程序设计》和《Rust权威指南》对于宏的讲解很少,《Rust程序设计》根本没有属性宏,《Rust权威指南》有提到属性宏,只是举个使用的例子,根本没有讲怎么实现。实际中我发现Rust这些框架中也是大量的使用这些东西。
为什么没有代码片段,本来是有的,但一点发布就会提示有敏感词。所以贴一张图片,大家看看这里面怎就敏感了,纯粹的Rust代码。
喜欢的可以看完整工程,完整工程工程见yew-lab