H5W3
当前位置:H5W3 > 其他技术问题 > 正文

【Web前端问题】在vue项目中遇到的问题:DOMException

用vue做项目的时候,抛出异常:
DOMException: Failed to execute ‘insertBefore’ on ‘Node’: The node before which the new node is to be inserted is not a child of this node.

clipboard.png

描述:这个问题之前在网上搜索过,从很多参考资料中看出,和v-if和v-show有关系,但是并没有给出过详细合理的解释以及解决方案,在此提出问题,希望遇到过解决的道友给出解释。

回答:

经过查找资料:
https://github.com/vuejs/vue-…
https://github.com/vuejs/vue/…
以上链接可参照。

本人推测当页面Dom在还没有渲染完成的情况下,http请求回来的数据被插入到未知节点中,导致出现这种错误。

情景:点击按钮从服务器请求数据,更新vnode,更新渲染结果。
解决: 对需要渲染的模板外层添加<div v-if=”isShow”><div v-for=”“></div></div>,点击按钮开始请求数据的时候@click=”isShow=false”, 当成功请求数据时,在回调函数中cb(isShow=ture). 保证 更新数据的时候先移除后插入*

回答:

我遇到过这种情况,将v-if去掉就解决了,或者用v-show,加上反而不行。此时DOM节点不存在,操作不了

回答:

遇到过类似的报错,最后的解决方法是放入nextTick内

本文地址:H5W3 » 【Web前端问题】在vue项目中遇到的问题:DOMException

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址