Skip to content

fix(runtime-core): properly get anchor when next sibling node is teleported #9313

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

Closed
wants to merge 11 commits into from

Conversation

edison1105
Copy link
Member

@edison1105 edison1105 commented Sep 28, 2023

close #9071

simple reproduction 1(click toggle 2 times)
simple reproduction 2(click toggle)

The root cause is that use a teleported node as an anchor and the teleported node is a child of n1 (the unmounting node)

@github-actions
Copy link

github-actions bot commented Sep 28, 2023

Size Report

Bundles

File Size Gzip Brotli
runtime-dom.global.prod.js 90.9 kB (+426 B) 34.5 kB (+121 B) 31.1 kB (+131 B)
vue.global.prod.js 148 kB (+426 B) 53.8 kB (+116 B) 48 kB (+116 B)

Usages

Name Size Gzip Brotli
createApp 51 kB (+225 B) 19.9 kB (+93 B) 18.1 kB (+64 B)
createSSRApp 54.3 kB (+225 B) 21.2 kB (+73 B) 19.3 kB (+76 B)
defineCustomElement 53.2 kB (+225 B) 20.6 kB (+74 B) 18.8 kB (+57 B)
overall 64.6 kB (+225 B) 24.9 kB (+73 B) 22.6 kB (+56 B)

Copy link

codspeed-hq bot commented Dec 18, 2023

CodSpeed Performance Report

Merging #9313 will not alter performance

Comparing edison1105:9071 (64b98ca) with main (04d2c05)

Summary

✅ 53 untouched benchmarks

@edison1105
Copy link
Member Author

/ecosystem-ci run

@vue-bot
Copy link
Contributor

vue-bot commented Dec 18, 2023

📝 Ran ecosystem CI: Open

suite result latest scheduled
language-tools failure failure
nuxt success success
pinia success success
quasar success success
router success success
test-utils success success
vant success success
vite-plugin-vue success success
vitepress success success
vue-i18n success success
vue-macros success success
vuetify failure failure
vueuse success success
vue-simple-compiler success success

@cicada-ah
Copy link

@edison1105 如果有多处teleport插入的节点都被规避掉,可能会导致插入位置不符合预期,渲染错位吧

@edison1105
Copy link
Member Author

@edison1105 如果有多处teleport插入的节点都被规避掉,可能会导致插入位置不符合预期,渲染错位吧

比如说🤔️

@edison1105
Copy link
Member Author

/ecosystem-ci run

@vue-bot
Copy link
Contributor

vue-bot commented Feb 22, 2024

📝 Ran ecosystem CI: Open

suite result latest scheduled
language-tools success success
nuxt success success
pinia failure failure
quasar success success
radix-vue success success
router success success
test-utils success success
vant success success
vite-plugin-vue success success
vitepress success success
vue-i18n success success
vue-macros success success
vuetify success success
vueuse success success
vue-simple-compiler success success

@cicada-ah
Copy link

cicada-ah commented Feb 25, 2024

playground

这种场景下,按照代码逻辑会插入到teleported1下面吧,但实际应该在上面
@edison1105 另外请教下,我该如何在playground调试你最新提交的commit呢

@cicada-ah
Copy link

cicada-ah commented Feb 25, 2024

@edison1105 请看下面示例,对比修改前后,在一次切换后,foo的位置发生了变化,同时包括一些其它issues里对insetBefore第二个参数做兜底,也应该会有这个问题,且更加粗暴,会规避掉一些本该报错的场景,我可能相对比较赞成,先unmount,再重新找anchor的做法
修改前

修改后

@edison1105 edison1105 marked this pull request as draft February 25, 2024 11:28
@edison1105 edison1105 marked this pull request as ready for review February 26, 2024 01:32
@edison1105
Copy link
Member Author

@cicada-ah
I've updated the solution, please feel free to look it over.

@edison1105
Copy link
Member Author

/ecosystem-ci run

@vue-bot
Copy link
Contributor

vue-bot commented Feb 26, 2024

📝 Ran ecosystem CI: Open

suite result latest scheduled
language-tools failure success
nuxt failure success
pinia success failure
quasar success success
radix-vue success success
router success success
test-utils success success
vant success success
vite-plugin-vue success success
vitepress success success
vue-i18n success success
vue-macros success success
vuetify success success
vueuse success success
vue-simple-compiler success success

@edison1105
Copy link
Member Author

/ecosystem-ci run

@vue-bot
Copy link
Contributor

vue-bot commented Feb 28, 2024

📝 Ran ecosystem CI: Open

suite result latest scheduled
language-tools failure failure
nuxt success success
pinia success success
quasar success success
radix-vue success success
router success success
test-utils success success
vant success success
vite-plugin-vue success success
vitepress success success
vue-i18n success success
vue-macros success success
vuetify success success
vueuse success success
vue-simple-compiler success success

@edison1105 edison1105 marked this pull request as draft February 28, 2024 07:48
@edison1105 edison1105 marked this pull request as ready for review February 29, 2024 07:05
@edison1105 edison1105 changed the title fix(runtime-core): avoid using teleported node as anchor fix(runtime-core): properly get anchor when next sibling node is teleported Feb 29, 2024
@yyx990803 yyx990803 closed this in 8655ced Jul 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Rejected
Development

Successfully merging this pull request may close these issues.

bugs: teleport component with router push occur error
3 participants