effector

Cover image for Пререлизная версия effector-solid доступна для публичного пользования!
Kirill Mironov for Core

Posted on

Пререлизная версия effector-solid доступна для публичного пользования!

Официальные биндинги для 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')!)
Enter fullscreen mode Exit fullscreen mode

Image description

Также мы обновили репл, и теперь в настройках можно выбрать библиотеку для отображения. Сейчас есть выбор из react и solid.

Image description
Image description

Пример - https://share.effector.dev/nwEvJ8HE

Дальнейшие планы

Мы будем смотреть, насколько удобное апи получилось и нет ли каких-либо багов. Также будем смотреть на отзывы сообщества (вас, друзья!), чтобы понять, чего не хватает.

Как только мы достигнем консенсуса по поводу готовности биндингов - мы сделаем рокировку мажорной и минорной версии, как это было однажды с эффектором и с того момента начнем соблюдать гарантии поддержки.

Отдельное спасибо хочу выразить членам Effector Core за оказанную помощь и содействие и контрибуторам SolidJS, в частности, Райану Карниато, в том числе за прекрасные статьи.

Discussion (0)