GO-.gox的JSX

2020-07-29 07:04:50

Gox是Go语法的扩展,可以让您直接在源代码中编写HTML样式的标签。

直接在Go源代码中编写HTML样式的标记,并将它们转换成可以与GopherJS或WebAssembly一起运行的Vecty组件。

软件包mainimport";github.com/gopherjs/vecty&34;type Page struct{vecty.Core}func(w*Page)Render()Vector()Vector。ComponentOrHTML{return<;body>;<;div class=";amerching&34;>;<;h1>;gox<;/h1>;<;span class={";您可以/Body>;}func main(){vecty.RenderBody(new(Page))}。

拥有类型安全固然不错,但我不愿意编写长格式的Vecty组件。

我们基本上提供了GO解析器/扫描器/AST/等,并对其进行了修改,直到它符合我们的需要。

Func(p*pageview)renderItemList()Vector ty.ComponentOrHTML{var Items Vector ty.List for i,Items:=Range Store.Items{if(store.Filter==model.Active&;&;item.Completed)||(store.Filter==model.Completed&;&;!item.Completed){Continue}Items=Append(Items,<;ItemView Index={i}Item.Completed){Continue}Items=Append(Items,<;ItemView Index={i}Item输入id=";切换-全部&34;class=";切换-全部";类型=";复选框";选中={store.CompletedItemCount()==len(store.Items)}onChange={p.onToggleAllCompleted}/&><;标签=";切换-全部&34;>;将全部标记为完整<;/Label>;</SECTION>;}。

使用Gox<;目录>;将.gox文件转换为.go文件(它们保留在同一目录中)。

GopherJS应该负责其余部分,使用Vecty的文档和GopherJS的文档了解更多信息。我们使用Gopherjs发球,事情就会神奇地再次被颠倒。

如果您想改进这一流程,我们很乐意考虑您的想法/公关。