Back to flin
flin

Réactivité au niveau des attributs

Comment le système de réactivité fine de FLIN suit les dépendances au niveau des attributs -- mettant à jour uniquement les attributs DOM spécifiques qui changent, pas les composants entiers.

Juste A. Gnimavo (Thales) & Claude | March 26, 2026 2 min flin
EN/ FR/ ES
flinreactivityattributesbinding

Quand vous écrivez <div class="card {if active then 'active' else ''}" style="opacity: {opacity}"> en FLIN, deux choses se passent quand active change : l'attribut class se met à jour, et rien d'autre. L'attribut style ne se réévalue pas. L'élément n'est pas détruit et recréé. Les enfants du div ne sont pas re-rendus. Seul l'attribut spécifique qui dépend de la variable changée est touché.

C'est la réactivité au niveau des attributs -- l'approche de FLIN pour rendre les mises à jour UI aussi peu coûteuses que possible. Le coût de mise à jour est O(k) où k est le nombre de bindings qui dépendent de la variable changée. Pas O(n) où n est le nombre total d'éléments.

Pour un tableau de bord complexe avec 500 éléments, la différence est dramatique. La réactivité au niveau des composants re-rend tout le tableau de bord à chaque changement. La réactivité au niveau des attributs met à jour uniquement les attributs spécifiques qui ont changé -- typiquement 1-5 opérations DOM au lieu de 500 comparaisons d'éléments.


Ceci est la partie 92 de la série "How We Built FLIN".

Navigation de la série : - [91] Slots and Content Projection - [92] Attribute Reactivity (vous êtes ici) - [93] Theme Toggle and Dark Mode - [94] The Raw Tag: Escape Hatch for HTML

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude zerosuite

Ça marche, et ce n'est pas fini

Le dirigeant a parcouru lui-même tous les canaux de senndo — cinq canaux, à l'unité et en campagne, l'import, les statistiques, un remboursement, l'API — et tout a répondu. Le fichier de pilotage disait toujours non, et la seule ligne qui bloquait n'était pas du code : c'était un document qui avait discrètement cessé d'être vrai. Quatre affirmations vraies à l'écriture et fausses à la lecture, et les gardes lisibles par une machine qui attrapent désormais chacune de ces formes.

13 min Sep 14, 2026
senndocpaaslaunch-readinessdocumentation +8
Thales & Claude zerosuite

Le navigateur entre les mains de Claude : piloter le Chrome du dirigeant

Claude-in-Chrome permet à une session Claude Code de piloter le vrai navigateur du dirigeant — même profil, mêmes sessions ouvertes. Ce que l'outil fait réellement, pourquoi il vaut mieux que de demander à un humain de cliquer et de rapporter, et où l'humain garde l'avantage. Ancré dans le jour où Claude a conduit un parcours client complet dans la console de production de senndo, messages facturés compris.

9 min Aug 18, 2026
claude-in-chromebrowser-automationclaude-codeclaude-fable-5 +9
Thales & Claude deblo

Le segfault qui n'était pas le nôtre : livrer le tracking du jour de lancement de Déblo la nuit du lancement — analytics conditionnées par l'environnement, attribution native des stores, trois bugs que le compilateur ne pouvait pas voir, et un build à court de mémoire que nous avons diagnostiqué au lieu de le rétablir

Le 1er juillet 2026 — jour de lancement — le risque n'a jamais été le texte. C'était les campagnes payantes qui partaient à l'aveugle. Voici le build-log de la livraison des analytics et de l'attribution d'installation de Déblo sous forme de code, la nuit du lancement : des tags GA4, Meta et LinkedIn conditionnés par l'environnement, qui se déploient sans risque avant même que les comptes publicitaires existent ; une attribution routée par les canaux natifs des stores plutôt que par le pixel web ; un audit adverse qui a attrapé trois bugs que le typecheck et le build passaient tous les deux ; et un déploiement Easypanel qui a segfaulté au premier build — que nous avons prouvé ne pas venir de notre code avant d'en changer une seule ligne.

18 min Jul 1, 2026
deblolaunch-dayclaude-opus-4.8claude-code +26