랭킹으로 돌아가기

effector/effector

TypeScripteffector.dev

Business logic with ease ☄️

statebusiness-logicreactiveevent-driveneffectorstate-managementstate-manager
스타 성장
스타
4.8k
포크
277
주간 성장
이슈
133
2k4k
2018년 2월2020년 11월2023년 9월2026년 7월
아티팩트npmnpm install effector
README

Effector Comet Logo


join gitter build status discord chat become a patron Ask DeepWiki

☄️ effector

Business logic with ease

Visit effector.dev for docs, guides and examples

Table of Contents

Introduction

Effector implements business logic with ease for Javascript apps (React/React Native/Vue/Svelte/Node.js/Vanilla), allows you to manage data flow in complex applications. Effector provides best TypeScript support out of the box.

Effector follows five basic principles:

  • Application stores should be as light as possible - the idea of adding a store for specific needs should not be frightening or damaging to the developer.
  • Application stores should be freely combined - data that the application needs can be statically distributed, showing how it will be converted in runtime.
  • Autonomy from controversial concepts - no decorators, no need to use classes or proxies - this is not required to control the state of the application and therefore the api library uses only functions and plain js objects
  • Predictability and clarity of API - a small number of basic principles are reused in different cases, reducing the user's workload and increasing recognition. For example, if you know how .watch works for events, you already know how .watch works for stores.
  • The application is built from simple elements - space and way to take any required business logic out of the view, maximizing the simplicity of the components.

Installation

You can use any package manager

npm install effector

React

To getting started read our article how to write React and Typescript application.

npm install effector effector-react

SolidJS

npm install effector effector-solid

Vue

npm install effector effector-vue

Svelte

Svelte works with effector out of the box, no additional packages needed. See word chain game application written with svelte and effector.

CDN

Documentation

For additional information, guides and api reference visit our documentation site

Packages

Articles

Community

Online playground

You can try effector with online playground

Code sharing, Typescript and react supported out of the box. Playground repository

DevTools

Use effector-logger for printing updates to console, displaying current store values with ui or connecting application to familiar redux devtools


More examples in documentation

Learn more

Support us

Your support allows us to improve the developer experience 🧡.

Contributors

Dmitry/
Dmitry
andretshurotshka/
andretshurotshka
Sova/
Sova
Alexander
Alexander Khoroshikh
popuguy/
popuguy
Igor
Igor Kamyşev
Nikita
Nikita Kungurcev
pxbuffer/
pxbuffer
Valeriy
Valeriy Kobzar
Yan/
Yan
Ruslan
Ruslan @doasync
Illia
Illia Osmanov
mg901/
mg901
Igor
Igor Ryzhov
Edward
Edward Gigolaev
Viktor/
Viktor
Arthur
Arthur Irgashev
Ilya/
Ilya
Mikhail
Mikhail Kireev
Ainur/
Ainur
Ilya
Ilya Olovyannikov
Arutyunyan
Arutyunyan Artem
Dmitrij
Dmitrij Shuleshov
Nikita
Nikita Nafranets
Ivan
Ivan Savichev
Aleksandr
Aleksandr Osipov
bakugod/
bakugod
Зухриддин
Зухриддин Камильжанов
Mikhail
Mikhail Krilov
Victor
Victor Didenko
Viktor
Viktor Pasynok
Kirill
Kirill Mironov
Andrei/
Andrei
Denis/
Denis
Filipkin
Filipkin Denis
Ivan/
Ivan
Ivanov
Ivanov Vadim
sergey20x25/
sergey20x25
Rastrapon/
Rastrapon
Dan/
Dan
Bohdan
Bohdan Petrov
Bartłomiej
Bartłomiej Wendt
Ivan/
Ivan
Tauyekel
Tauyekel Kunzhol
Victor/
Victor
Vitaly
Vitaly Afonin
Vladimir
Vladimir Ivakin
Aldiyar
Aldiyar Batyrbekov
cqh/
cqh
R
R I
☃︎/
☃︎
Andrei
Andrei Antropov
Aleksandr
Aleksandr Belov
an.chmelev/
an.chmelev
Anton
Anton Kosykh
Anton
Anton Yurovskykh
Arsen-95/
Arsen-95
Chshanovskiy
Chshanovskiy Maxim
Denis
Denis Sikuler
Kirill/
Kirill
Renat
Renat Sagdeev
Samir/
Samir
Matvei
Matvei Tratseuski
Sozonov/
Sozonov
Yesset
Yesset Zhussupov
Rasul
Rasul
Will
Will Heslam
Vladislav
Vladislav Botvin
Vladislav
Vladislav Melnikov
Vladislav/
Vladislav
Victor
Victor Kolb
Vasili
Vasili Svirydau
Vasili
Vasili Sviridov
Usman
Usman Yunusov
The
The Gitter Badger
Simon
Simon Muravev
Shiyan7/
Shiyan7
Sergey
Sergey Belozyorcev
Satya
Satya Rohith
falkomerr/
falkomerr
Roman/
Roman
Robert
Robert Kuzhin
Gabriel
Gabriel Husek
xxxxue/
xxxxue
vladthelittleone/
vladthelittleone
Vladimir
Vladimir Skripnik
Vladimir/
Vladimir
roman/
roman
Eris/
Eris
masawik/
masawik
lightningmq/
lightningmq
Kirill
Kirill Leushkin
kanno/
kanno
Ilya/
Ilya
ilfey/
ilfey
Houston
Houston (Bot)
Grigory
Grigory Zaripov
dmitryplyaskin/
dmitryplyaskin
Stanislav/
Stanislav
Артём
Артём Жолудь
ansunrisein/
ansunrisein
Anatoly
Anatoly Kopyl
Ed
Ed Prince
Dmitry
Dmitry Dudin
Dmitry/
Dmitry
Denis
Denis Skiba
Dinislam
Dinislam Maushov
Ayu/
Ayu
David/
David
Egor
Egor Gorochkin
Amar
Amar Sood
Александр/
Александр
Alexander/
Alexander
Alex
Alex Anokhin
Alex
Alex Arro
Aleksandr
Aleksandr Grigorii
Abel
Abel Soares Siqueira
7iomka/
7iomka
Abdukerim
Abdukerim Radjapov
0xflotus/
0xflotus
Raman
Raman Aktsisiuk
Rachael
Rachael Dawn
Philipp/
Philipp
bigslycat/
bigslycat
Oleh/
Oleh
Oleg/
Oleg
Mike
Mike Cann
Nikita
Nikita Svoyachenko
Marco
Marco Pasqualetti
Ludovic
Ludovic Dem
Leniorko/
Leniorko
Lebedev
Lebedev Konstantin
Joel
Joel Bandi
Jesse
Jesse Jackson
Jan
Jan Keromnes
Ivan/
Ivan
Infant
Infant Frontender
Ilya
Ilya Martynov
Gleb
Gleb Kotovsky

Tested with browserstack

관련 저장소
statelyai/xstate

State machines, statecharts, and actors for complex logic

TypeScriptnpmMIT Licensestate-machinestatechart
stately.ai/docs
29.9k1.4k
pmndrs/jotai

👻 Primitive and flexible state management for React

TypeScriptnpmMIT Licensereactstate
jotai.org
21.2k724
pmndrs/valtio

🧙 Valtio makes proxy-state simple for React and Vanilla

TypeScriptnpmMIT Licensereactstate
valtio.dev
10.2k289
dr5hn/countries-states-cities-database

🌍 Discover our global repository of countries, states, and cities! 🏙️ Get comprehensive data in JSON, SQL, PSQL, SQLSERVER, MONGODB, SQLITE, XML, YAML, and CSV formats. Access ISO2, ISO3 codes, country code, capital, native language, timezones (for countries), and more. #countries #states #cities

PythonPyPIOpen Data Commons Open Database License v1.0citiescountries
countrystatecity.in
9.7k3k
jamiebuilds/unstated

State so simple, it goes without saying

JavaScriptnpmMIT Licensereactstate
7.7k262
node-config/node-config

Node.js Application Configuration

JavaScriptnpmOtherconfigstate
6.4k510
tinyplex/tinybase

A reactive data store & sync engine.

TypeScriptnpmMIT Licensereactjavascript
tinybase.org
5.1k130
Tencent/westore

小程序MVVM分层架构

JavaScriptnpmweappstore
4.3k478
samber/mo

🦄 Monads and popular FP abstractions, powered by Go 1.18+ Generics (Option, Result, Either...)

GoGo ModulesMIT Licensecatseither
pkg.go.dev/github.com/samber/mo
3.4k118
abgox/InputTip

规则驱动的输入法状态管理器 · 即时 · 强大 · 高效

AutoHotkeyGNU Affero General Public License v3.0cursorinput
inputtip.abgox.com
3.3k86
final-form/final-form

🏁 Framework agnostic, high performance, subscription-based form state management

TypeScriptnpmOtherformforms
final-form.org
3k225
redux-orm/redux-orm

NOT MAINTAINED – A small, simple and immutable ORM to manage relational data in your Redux store.

JavaScriptnpmMIT Licensereduxorm
redux-orm.github.io/redux-orm/
2.9k110