发现一个坑 # teleport

一句话总结:你必须在路由离开此页面前取消渲染其通过 teleport 挂载到外部节点的元素。

写模态框时发现的,(模态框用v-if:“show”)
我在 teleport 到 “#app” 的一个模态框里写了一个表单,表单提交成功就立即 router.push ,
然后报错 DOMException,网上找不到原因。最后发现走之前必须把 show=false

说明 teleport 的挂载逻辑上还是在原挂载节点。感觉 vue-router 可以在路由离开时自动关闭 teleport 子节点。

我觉最坑的是,必须指定到一个已经渲染出来的dom上面,虚拟的还没渲染出来的不行。
这样就太不方便了。

还得确定有没有渲染出来。鸡肋呀。

比如讨论的盖楼,本来可以设置后父讨论的ID,然后让每一层讨论自己去找即可。

但是这时候父层还没有渲染出来,找不到目标。

必须先渲染出来第一层,然后才行挂下一层,然后再挂下下层。。。