daz
v0.1.4
Golang的組合HTML組件

DAZ是使用模板的“功能性”替代方法,並且允許嵌套組件/列表還可以啟用無模板的服務器端渲染組件,並支持嵌套列表。它的靈感來自Hyperscript。
可以創建一個組件並與簡單功能一起使用:
// Example prop for a component
type User struct {
Name string
// ...
}
func MyComponent ( user User ) HTML {
return H (
"div" ,
Attr { "class" : "bg-grey-50" },
user . Name ,
)
}
func Root () HTML {
user := User { Name : "Daz" }
return H ( "html" , MyComponent ( user ))
}
// And used in a handler:
func Handler ( w http. ResponseWriter , r * http. Request ) {
w . Write ([] byte ( Root ()()))
}可以輕鬆地創建列表,而無需將range / end嵌入模板中:
items := [] HTML {
H ( "li" , "item one" ),
H ( "li" , "item two" ),
}
element := H ( "ul" , Attr { "class" : "bg-grey-50" }, items )
div := H ( "div" , element ) import (
"github.com/stevelacy/daz"
)
H創建HTML元素:
H ( "div" , ... attrs )AttrHTML屬性:
Attr {
"class" : "app" ,
"onClick" : "javascriptFunc()" ,
}UnsafeContent這將繞過HTML消毒,並允許直接注射
injection := "<script>alert('xss')</script>"
root := H ( "div" , UnsafeContent ( injection ))
// <script>alert('xss')</script>