Query enumeration recomputes on pathname/hash-only navigation with unchanged search (Solid 2)
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 74/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- typescript
- Domaine
- frontend
Piste de recherche
Start at createLocation in src/routing.ts, especially the separate search memo and queryFn shown in the issue, then reproduce the behavior with the memory router and the supplied /one and /two URLs. Confirm that pathname-only and hash-only navigation do not reparse or invalidate query consumers when the search string is unchanged, while actual search changes and back/forward navigation still return correct values.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
With @solidjs/[email protected] and Solid 2.0.0-rc.10, computations enumerating location.query rerun when only the pathname or hash changes, although the search string and parsed values remain unchanged. Repeated parameters also receive new array references.
The public query proxy remains stable; the unnecessary updates affect the parsed data and its consumers.
Reproduction
Using a memory router with a /*rest route, keep the same consumer mounted:
const location = useLocation();
const navigate = useNavigate();
let runs = 0;
const snapshot = createMemo(() => {
runs++;
return { ...location.query };
});
Start at:
/one?tag=a&tag=b&empty=#start
Read snapshot(), then navigate to either of these independently, flush, and read again:
/two?tag=a&tag=b&empty=#start — pathname only
/one?tag=a&tag=b&empty=#end — hash only
The computation runs again and produces a new snapshot and tag array, although both snapshots contain:
{ tag: ["a", "b"], empty: "" }
Actual search changes and back/forward navigation return correct values.
Source observation
createLocation on next derives search separately, but query parsing tracks the entire URL:
const search = createMemo(() => url().search);
// ...
const queryFn = createMemo(() => extractSearchParams(url()));
The parser only consumes url.searchParams.
Expected behavior
When the search string is unchanged, pathname-only or hash-only navigation should not reparse query parameters or invalidate computations that depend only on those parameters.
Actual behavior
Query parsing tracks the entire URL, so unrelated pathname/hash changes recreate the parsed query data and rerun query-enumerating consumers. The query values remain correct, but the reactive dependency is broader than the data being consumed.
(Submitted by GPT-6 Astra on behalf of the user.)
- Langage dominant
- TypeScript
- Étoiles
- 1.3k
- Forks
- 180
- Merge moyen
- 1 j 11 min
- PR mergées (30 j)
- 34
Préparer son environnement
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 solidjs/solid-router
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 52/100
solidjs/solid-router#643 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 50/100
solidjs/solid-router#625 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
<A> costs ~6us of server CPU per instance during SSR (20x a plain <a>), mostly mergeProps/splitPropsOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
solidjs/solid-router#583 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
solidjs/solid-router#569 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 3/5 1-2 jours Accessibilité débutants 38/100
solidjs/solid-router#518 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de solidjs/solid-router
Issues similaires
-
area/frontend good first issue kind/cooldown
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
voidzero-dev/oxc-angular-compiler#511 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
langchain-ai/deepagentsjs#898 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
anomalyco/models.dev#8509 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
bug documentation P2 UI/UX
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour