À propos du projet
Jetz est un framework JavaScript composable pour créer des interfaces web réactives à l'aide de JavaScript déclaratif, inspiré de Jetpack Compose. Il permet aux développeurs de construire des arbres DOM avec de simples appels de fonctions (par exemple div, button, p) sans dépendre de JSX, d'une compilation au moment de la construction ou de langages de template.
Les capacités clés incluent :
- Composition d'interface déclarative : les éléments HTML sont exportés sous forme de fonctions JavaScript composables. Les éléments acceptent des chaînes, des nombres, des éléments enfants, des objets (pour les attributs/propriétés), des helpers CSS et des états réactifs comme arguments.
- Gestion d'état réactive : stateOf pour un état à valeur unique à granularité fine, rememberOf pour un état synchronisé avec localStorage, et computed pour des valeurs dérivées suivies automatiquement.
- Système de composants : les composants peuvent être définis comme des fonctions ou des classes étendant Component, avec des hooks de cycle de vie (onCreate, onMount, onUpdate, onDestroy).
- Collections réactives : listOf et sequenceOf pour des tableaux observables, avec loop pour la réconciliation de listes avec clés et le recyclage d'éléments DOM en O(1).
- Rendu conditionnel : _if, _elseif, _else et ifElse pour un basculement de branches déclaratif.
- Liaison de données bidirectionnelle : propriété bind pour synchroniser les éléments de saisie avec l'état.
- Routage et navigation : routage SPA côté client avec Router, route, link et middlewares/gardes de route.
- État de session : JetzSession et sessionOf pour des stockages clé-valeur réactifs reposant sur sessionStorage.
- Utilitaires DOM : méthodes helpers fluides comme find, findAll, attr, addClass sur les éléments.
- Effets de bord : effect pour des effets suivis automatiquement avec nettoyage.
Le framework est regroupé avec Rspack et distribué sous forme de package npm (@daevoft/jetz).
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.