Официальные биндинги для SolidJS теперь готовы для тестирования широкой публике.
https://www.npmjs.com/package/effector-solid
Чем это хорошо?
SolidJS - активно развивающийся фреймворк, который периодически покоряет топы бенчмарков. В чем загвоздка? В том, что Solid управляет нативными дом нодами, полагаясь на кастомный JSX трансформер и точечную, атомарную реактивность.
Думаю, многие уже догадались, почему эффектор и солид идеально друг другу подходят.
Возможность легко писать декларативную бизнес логику и не задумываться о ререндерах вьюхи звучит как волшебный сон, но теперь это возможно!
https://www.solidjs.com/
Как начать пробовать?
Все достаточно просто, достаточно лишь следовать инструкции, описанной в самом пакете. Для наглядности приведу пример банальнейшего приложения, логика в котором построена с помощью эффектора, а отображение - с помощью солида.
import type { Component } from 'solid-js';
import { render } from 'solid-js/web'
import { createEvent, createStore } from "effector";
import { useUnit } from 'effector-solid'
const inputText = createEvent<string>()
const $text = createStore('')
const $size = createStore(0)
$text.on(inputText, (_, text) => text)
$size.on(inputText, (_, text) => text.length)
const Form = () => {
const { text, size, inputTextEvent } = useUnit({
size: $size,
text: $text,
inputTextEvent: inputText
})
return (
<form>
<input
type="text"
onInput={e => inputTextEvent(e.currentTarget.value)}
value={text()}
/>
<p>Length: {size}</p>
</form>
)
}
const App: Component = () => {
return (
<Form />
);
};
render(() => <App />, document.getElementById('root')!)
Также мы обновили репл, и теперь в настройках можно выбрать библиотеку для отображения. Сейчас есть выбор из react и solid.
Пример - https://share.effector.dev/nwEvJ8HE
Дальнейшие планы
Мы будем смотреть, насколько удобное апи получилось и нет ли каких-либо багов. Также будем смотреть на отзывы сообщества (вас, друзья!), чтобы понять, чего не хватает.
Как только мы достигнем консенсуса по поводу готовности биндингов - мы сделаем рокировку мажорной и минорной версии, как это было однажды с эффектором и с того момента начнем соблюдать гарантии поддержки.
Отдельное спасибо хочу выразить членам Effector Core за оказанную помощь и содействие и контрибуторам SolidJS, в частности, Райану Карниато, в том числе за прекрасные статьи.
Latest comments (0)