Javascript 在vue js中访问DOM好吗?

Javascript 在vue js中访问DOM好吗?,javascript,dom,vue.js,Javascript,Dom,Vue.js,我想知道在Vue js应用程序中访问DOM可以吗? 例如,如果我想将一个元素(div)附加到body标记,建议在Vue js方法中使用document.getElementById 我没有可用于基于数据创建或删除元素的数据。 我真的只是想知道在Vue js中使用document访问DOM是否很常见 大概是这样的: methods:{ appendToBody(){ let node = document.createElement("div"); document.getEleme

我想知道在Vue js应用程序中访问DOM可以吗? 例如,如果我想将一个元素(div)附加到body标记,建议在Vue js方法中使用
document.getElementById

我没有可用于基于数据创建或删除元素的数据。 我真的只是想知道在Vue js中使用
document
访问DOM是否很常见

大概是这样的:

methods:{
 appendToBody(){
   let node = document.createElement("div");
   document.getElementById("#body").appendChild(node);
 }
}

您可以在Vue中使用诸如
document.getElementById
之类的DOM函数来查找元素,但决不能使用DOM函数来更改DOM。始终通过更改变量在Vue中进行修改,并在模板中对其作出反应。

这取决于您所引用的DOM的哪个部分

如果要更改由Vue处理的子树,则不应这样做。您应该依赖于反应性属性、组件。如果需要访问作为当前组件子级的DOM元素,则可以使用

如果您需要更改不属于Vue领域的DOM的一部分,请务必这样做


在您的情况下,不清楚您想要实现什么,很难给出明确的答案。

为什么不使用组件?如何使用组件将div附加到正文中?我认为vue js可以控制#app元素而不是主体。可能是@stdob的副本——不,它帮不了我。没有我想要添加或删除基于该数据的元素的数据。我只想在vue js实例(我的意思是#应用程序部分)的外部添加一个元素,为什么需要这个?您的用例是什么?对于Vue实例正在管理的根DOM元素及其子元素,可能正确的“永远不要使用DOM函数来更改DOM”。除此之外,您当然可以更改DOM。@edwin和您认为我在vue js中这样使用此函数可以吗<代码>单据.body.appendChild(节点)是修改还是更改?是的,
appendChild()
是修改,不要在Vue应用程序中这样做。str是对的,在Vue应用程序之外更改元素没有问题。谢谢!我想我的案例是第三个。因为我想在Vue js实例的一侧进行一些计算。顺便说一句,在Vue实例中修改dom有多糟糕。我正在将Vue集成到现有应用程序中,并让Vue控制标题、侧栏和主内容div,但现有应用程序目前正在使用jQuery更改视图并控制该dom元素中的所有内容。可以吗?这显然不是很好,但我能允许黑盒的情况吗?如果有必要,我会以新问题的形式发帖,但我想我会以相关问题的形式发帖。这取决于你所说的ok是什么意思。如果你问它是否有效,它会的。在分担Vue和JQuery之间的责任时需要小心。只要不依赖Vue来做任何与DOM元素相关的事情,它就可以很好地工作。通过vue和jquery来控制它将是非常困难的。