New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
An ever Increasing Component ID #2537
Conversation
# Conflicts: # .github/workflows/main-checks.yml # examples/agents/Cargo.toml # examples/boids/Cargo.toml # examples/contexts/Cargo.toml # examples/counter/Cargo.toml # examples/dyn_create_destroy_apps/Cargo.toml # examples/file_upload/Cargo.toml # examples/function_memory_game/Cargo.toml # examples/function_router/Cargo.toml # examples/function_router/index.html # examples/function_todomvc/Cargo.toml # examples/futures/Cargo.toml # examples/game_of_life/Cargo.toml # examples/inner_html/Cargo.toml # examples/js_callback/Cargo.toml # examples/keyed_list/Cargo.toml # examples/mount_point/Cargo.toml # examples/nested_list/Cargo.toml # examples/node_refs/Cargo.toml # examples/password_strength/Cargo.toml # examples/portals/Cargo.toml # examples/router/Cargo.toml # examples/suspense/Cargo.toml # examples/timer/Cargo.toml # examples/todomvc/Cargo.toml # examples/two_apps/Cargo.toml # examples/web_worker_fib/Cargo.toml # examples/webgl/Cargo.toml # packages/yew-router/Cargo.toml # packages/yew/Cargo.toml # packages/yew/Makefile.toml # packages/yew/src/app_handle.rs # packages/yew/src/dom_bundle/bcomp.rs # packages/yew/src/dom_bundle/mod.rs # packages/yew/src/dom_bundle/traits.rs # packages/yew/src/html/component/lifecycle.rs # packages/yew/src/html/component/mod.rs # packages/yew/src/html/component/scope.rs # packages/yew/src/html/mod.rs # packages/yew/src/lib.rs # packages/yew/src/renderer.rs # packages/yew/src/scheduler.rs # packages/yew/src/suspense/component.rs # packages/yew/src/suspense/mod.rs # packages/yew/src/virtual_dom/vcomp.rs # tools/website-test/Cargo.toml # website/docs/getting-started/build-a-sample-app.mdx # website/docs/tutorial/index.mdx
Visit the preview URL for this PR (updated for commit cf0d73d): https://yew-rs-api--pr2537-comp-id-u71lgz64.web.app (expires Mon, 28 Mar 2022 04:06:45 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 |
Size Comparison
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks mostly good to me. Approving, once I figure out if BTreeMap
is a good decision. Looks like the right data structure, but I want an okay on the bundle size growth.
Also, you might know, how many render calls, previously skipped in RenderScheduler
are now inherently skipped over?
cf0d73d
I am not too worried about the I don't think there is better way to achieve what this pull request is doing with smaller codebase than:
(
All previously skipped renders should still be skipped. The previous |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No more objections from me, then.
Just wondering, would it be possible to add test cases for this? The test would ensure the parent has a smaller id than the child |
It's possible. Let's do this in a future pull request. |
Description
Originally part of #2453.
This pull request makes the parent's component ID to always be smaller than child components.
The effect of this change:
These changes are done to facilitate SSR hydration so that
NodeRef
of parent elements can always be fixed before child elements.Checklist
cargo make pr-flow