Remove interim `Tag` in Component render pipeline
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 25/100
- Type d'issue
- Refactorisation
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- javascript, python, react
Piste de recherche
Start with packages/reflex-base/src/reflex_base/components/component.py and trace how compiler templates consume the render dict. The issue also names packages/reflex-base/src/reflex_base/components/tags/ and related work #6235 and #6214 as context. Done means rendering produces a Var for the jsx(...) call, compiler templates consume it, and the deprecation path for _render() overrides is addressed.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
Component._render() returns a Tag, and Component.render() turns it into a render dict that the compiler templates serialize into JSX. Replace that interim stage: Component.render() returns a Var representing the jsx(...) function call, and the Var carries the hooks, imports and app wraps the component requires through its VarData. This is a breaking change for code that subclasses the render path.
Why
- A rendered component becomes an ordinary value in the Var system, so a component can appear wherever a
Varis accepted (props,cond/match/foreachbranches, memo returns) without the special-cased Component-to-Var conversion, which today drops part of theVarData(Linear ENG-9593). - The
Tag/render-dict stage is an untyped dict between Python objects and emitted JS. Collapsing it removes a layer the single-pass compiler (#6235) has to walk and lets a_get_var_data()-style collection replace the separate hooks, app wraps, imports and custom-code paths onComponent. - Immutable components (#6214) already treat a component as a value; rendering to a
Varis the matching output side.
Scope
Component._render()/Component.render()produce aVarfor thejsxcall instead of aCommonTag/ render dict (packages/reflex-base/src/reflex_base/components/component.py).packages/reflex-base/src/reflex_base/components/tags/is removed, or kept as an internal helper for the deprecation window only.- Compiler templates consume the rendered
Varinstead of the render dict. - Deprecation path for components that override
_render()to return aTag.
Related
- #6235 Single Pass Compiler: Tracking Issue
- #6214 Single-pass compiler: Make Component effectively immutable
- Langage dominant
- Python
- Étoiles
- 29k
- Forks
- 1.8k
- Merge moyen
- 2 j 22 h
- PR mergées (30 j)
- 143
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de reflex-dev/reflex
-
Operations on a list[T] | None var throw when the value is NonePeut-être pris @masenf l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
reflex-dev/reflex#7826 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
A dev run stopped before its backend loads leaves .web/nocompile, so the next run or export skips the compilePeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
reflex-dev/reflex#7825 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
PropsBase nested serialization applies parent include/exclude filters to child fieldsPeut-être pris @harsh21234i l’a pris il y a 1 jour. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
reflex-dev/reflex#7787 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
OTel: add trace_flags to JSON log records so unsampled trace ids are recognizablePeut-être pris @ShaanGS l’a pris il y a 7 jours. Ouverteenhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
reflex-dev/reflex#7729 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
0.9.12 changelog follow-ups: the #7132 "_get_was_touched" entry describes unreachable behaviour, #7115's hasattr/getattr change is undocumented, #7131's wordingPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
reflex-dev/reflex#7260 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de reflex-dev/reflex
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
UKGovernmentBEIS/inspect_ai#6512 ·
Les mainteneurs répondent en général sous 1 jour
-
area/c++ area/core kind/bug-report
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
tensorflow/quantum#1140 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 68/100
Kav-K/GPTDiscord#501 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
UKGovernmentBEIS/inspect_evals#2863 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour