View transitions: the commit window from 2024 is still missing
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript
- Lĩnh vực
- frontend
Hướng nghiên cứu
Start by reading the router navigation and scroll restoration code, then inspect Solid's flush() behavior and the related discussions #372 and #482. The issue describes the desired core hook and router integration but does not name files or tests. Done means view transitions wrap the settled navigation commit, work with back and forward without duplicating history, and keep scroll restoration within that commit.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
In February 2024, discussion #372 asked for a hook that runs when the router writes the DOM, so document.startViewTransition can snapshot the old page and the new one. The useBeforeLeave + preventDefault + retry(true) workaround was already known to be wrong.
Ryan, 18 June 2024, on #372:
Yeah. I was thinking the hook might want to be handled by Solid itself, because you want to get in there before and after the synchronous part of the render. Or I guess it wraps it. It is a bit awkward to do right now but something I'm keeping in mind for future reactivity designs.
Ryan, 10 October 2024, on #482 (that workaround duplicates history entries):
Yeah.. I can imagine there are exceptions. The truth is the best way to hook into View Transition APIs would be something we exposed from core of Solid itself. The tricky part is we have our own async transition method and ideally you want to sneak the snapshot in after that is done but before we apply the render effects. We don't really expose that window right now. So you are stuck too early or too late in some cases.
That is still the latest word from a maintainer. Someone asked "is it the future yet?" on #372 in June 2025 and got no answer. Solid 2 has since shipped. startTransition is gone. flush() exists. @solidjs/router 2.0.0-next still contains zero calls to startViewTransition.
React 19 put <ViewTransition> in the reconciler, which is the core half of what was described above. @tanstack/solid-router already does the router half: after loaders, document.startViewTransition, then Solid.flush() so the new DOM exists before the browser snapshots. Solid Start does not add its own implementation. An app that needs a page crossfade on Solid today leaves @solidjs/router to get it.
What ships:
- A core hook for the moment after an async navigation has settled and before render effects paint.
- The router calls
document.startViewTransitionaround that moment, including back and forward, without a second history entry. - Scroll restoration stays inside that same commit. A separate
scrollToafter the callback races the snapshot.
useBeforeLeave cannot be that hook. It runs before the navigation, and holding the callback open across suspense deadlocks the browser transition ("Transition was aborted because of timeout in DOM update").
- Ngôn ngữ chính
- TypeScript
- Star
- 1.3k
- Fork
- 185
- Merge trung bình
- 15 giờ 47 phút
- Pull request đã merge (30 ngày)
- 47
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của solidjs/solid-router
-
`useBeforeLeave` and scroll restoration break on Back after 50 history entries (`_depth` taken from the capped `history.length`)Có thể đã có người làm @sarankumar1325 đã nhận 1 ngày trước. Đang mở1.x
Độ khó 4/5 1-2 ngày Mức phù hợp với người mới 57/100
solidjs/solid-router#694 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
solidjs/solid-router#691 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Forward pressed while a Back navigation is still loading is dropped; the URL and the rendered route get out of syncCó thể đã có người làm @sean0407 đã nhận 9 ngày trước. Đang mở1.x
Độ khó 4/5 1-2 ngày Mức phù hợp với người mới 54/100
solidjs/solid-router#687 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
<A> costs ~6us of server CPU per instance during SSR (20x a plain <a>), mostly mergeProps/splitPropsCó thể đã có người làm @birkskyum đã nhận 81 ngày trước. Đang mở1.x
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
solidjs/solid-router#583 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
1.x enhancement
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 38/100
solidjs/solid-router#518 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của solidjs/solid-router
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
better-auth/better-auth#12132 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
o8 next debug build aborts on Glass to Dark appearance switch (nil identifier messaged before check)Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
hurttlocker/o8#5112 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
webrecorder/wabac.js#386 ·
-
needs-triage
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 92/100
agent-of-empires/agent-of-empires#5098 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày