daz
v0.1.4
Golang의 Composable 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"
)
HHTML 요소 만들기 :
H ( "div" , ... attrs )AttrHTML 속성 :
Attr {
"class" : "app" ,
"onClick" : "javascriptFunc()" ,
}UnsafeContent이것은 html sanitization을 우회하고 직접 주입을 허용합니다.
injection := "<script>alert('xss')</script>"
root := H ( "div" , UnsafeContent ( injection ))
// <script>alert('xss')</script>