DESAI.DEV
← ВЕРНУТЬСЯ

Знакомство с Templ

Как устроены типобезопасные шаблоны в Go и чем они лучше html/template.

Что такое Templ?

Templ — это язык шаблонов для Go, который компилируется в обычный Go-код. Каждый шаблон становится функцией, возвращающей templ.Component.

Синтаксис

Компонент объявляется так:

templ Greeting(name string) {
    <h1>Привет, { name }!</h1>
}

После запуска templ generate появится файл greeting_templ.go с Go-кодом.

Вложенные компоненты

Компоненты можно вкладывать друг в друга:

templ Page(title string) {
    <html>
        <body>
            <h1>{ title }</h1>
            { children... }
        </body>
    </html>
}

templ HomePage() {
    @Page("Главная") {
        <p>Добро пожаловать!</p>
    }
}

Безопасность

По умолчанию все строки экранируются. Для вставки сырого HTML нужно явно использовать templ.Raw().

Итог

Templ избавляет от целого класса ошибок — опечатки в переменных шаблонов становятся ошибками компилятора, а не багами в рантайме.

← ВСЕ ПОСТЫ