【发布时间】:2019-06-13 01:10:51
【问题描述】:
我正在使用 Vue.js,我想在调用 Vue 构造函数之前隐藏元素,否则会向用户显示一堆花括号。我有以下内容:
HTML:
<div class="main hide-me" id="my-vue-element">
<!-- stuff -->
</div>
CSS:
.hide-me {
display: none !important;
}
JavaScript:
var myVueElement = document.getElementById("my-vue-element");
if (myVueElement) {
var myApp = new Vue({
el: myVueElement
, data: {
/* stuff */
}
, methods: {
/* stuff */
}
});
console.log(myVueElement);
console.log(myVueElement.classList);
myVueElement.classList.remove("hide-me");
console.log(myVueElement.classList);
console.log(myVueElement.getAttribute("class"));
控制台输出为:
DOMTokenList [ "main", "hide-me" ]
DOMTokenList [ "main" ]
main
但是,该元素没有出现,并且在 Firefox 和 Chrome 中使用 DOM 检查器显示 hide-me 类仍然存在。我试图用一个简化的例子来重现这一点,但我无法这样做。我在同一个项目中确实有 jQuery,我发现使用 $("#my-vue-element").removeClass("hide-me");(甚至在上面的代码之后添加它)会导致类从 DOM 中删除。有任何想法吗?谢谢!
【问题讨论】:
-
不要那样做。相反,使用数据绑定有条件地添加类。
-
老实说,您可能想要这个:v-cloak。 “这个 [v-cloak] 指令可用于隐藏未编译的 mustache 绑定,直到 Vue 实例准备好”
-
@birdspider,您介意将您的评论作为答案吗?