Шаблоны в Go давно вызывают споры. html/template безопасен, templ добавил удобство, но многим, кто приходит из React, всё ещё не хватает привычного JSX.
💡 gsx предлагает другой подход: компоненты пишутся в файлах .gsx, а затем компилируются в обычный Go-код (.x.go), который проверяет компилятор. Параметры компонентов — это обычные параметры функций Go, поэтому весь контракт остаётся типизированным.
Ещё одна интересная особенность — gsx.Node имеет тот же набор методов, что и templ.Component, поэтому компоненты gsx можно использовать вместе с templ без прямой зависимости от него.
➡️ Компонент выглядит так:
var footer = <><hr/><small>Built with gsx</small></>
component Page(children gsx.Node) {
<main>{children}</main>
{footer}
}
➡️ Для знакомства достаточно установить CLI и создать стартовый проект:
go install github.com/gsxhq/gsx/cmd/gsx@latest
gsx init hello-gsx --yes
cd hello-gsx
npm run dev
Проект пока находится в статусе alpha, поэтому использовать его в production ещё рано. Но если вам нравится JSX и вы разрабатываете SSR на Go, gsx определённо стоит попробовать.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
