🔥 Templ — пакет, который позволяет писать пользовательские интерфейсы на Go



Вместе с Templ мы можем написать следующий код:

/ index.templ



package mainhttps://github.com/a-h/templ/raw/main/ide-demo.gif



templ hello(name string) {

if name == "Виктор" {

<div>Привет, Виктор! Как твои дела сегодня?</div>

} else {

<div>Hello, { name }</div>

}

}



templ greeting(person Person) {

<div class="greeting">

@hello(person.Name)

</div>

}



// ...


Далее вам просто нужно запустить процесс генерации всех *.templфайлов...:

go run github.com/a-h/templ/cmd/templ@latest generate



...и после этого index.templ будет преобразована в обычную функцию Go и готоа к запуску. Выглядеть она может как-то так:

// main.go



package main



// ...



// Simple user struct.

type Person struct {

Name string

}



func main() {

// Create a new user with name.

user := Person{Name: "John"}



// Create Templ handler.

handler := templ.Handler(greeting(user))



// Serve Templ handler with HTTP server.

http.Handle("/", handler)



// Start simple HTTP server.

http.ListenAndServe(":3000", nil)

}




Теперь откройте браузер http://localhost:3000 и посмотрите результат.

Да, это так просто!



🖥 GitHub



@golang_interview