lumi
Metalcore / Lumi
Фреймворк для создания wasm
приложений при помощи go
.
Основная цель: создание простых web-приложений без использования js
и его фреймворков в лице react
, vue
, angular
и т.п.
🔥В настоящее время идет разработка и многое может очень сильно измениться.
Примеры использования
Все примеры можно посмотреть в разделе examples.
Простой пример использования:
lumi.RenderById("app", tag.Div( attr.Class("class-name"), "Какой-то там текст", tag.Button("Кнопка", event.Click(func() { fmt.Println("Клик") }), ),))
Сборка приложения
Для сборки приложения необходимо выполнить команду:
GOOS=js GOARCH=wasm go build -o main.wasm
Для работы необходим wasm_exec.js
, который можно взять из примеров или официального репозитория.
Подключение полученного скрипта выглядит так:
<head lang="ru"> <title>app</title> <script src="wasm_exec.js"></script> <script> if (WebAssembly) { const go = new Go(); WebAssembly.instantiateStreaming(fetch("main.wasm"), go.importObject).then((result) => { go.run(result.instance); }); } else { console.log("WebAssembly is not supported in your browser") } </script></head>
Планы на ближайшее время
- Повторная отрисовка только тех элементов в которых произошли изменения.
- Передача классов как атрибута элемента.
- Использование переменных в атрибутах. Реактивное поведение атрибутов.
- Добавить групповой элемент.
- Тестирование.
Языки
Go