javascript - 即使 el 在 Vue 中不存在,为什么挂载的钩子也会触发?
问题描述
我有一个简单的 vue 实例:
var vm = new Vue({
el: "#myEl",
data: {
parent: null,
posts: [],
total: 0,
currentPage: 0
},
mounted: function () {
alert("mounted");
}
});
一切都很好,#myEl
页面上何时存在,但如果不存在,则无论如何都会触发安装程序挂钩。
但为什么?没有要挂载实例的元素,那为什么还要挂载呢?我应该在 vue-way 中做些什么来检查el
存在?
解决方案
当 el 不可用时,组件会挂载在内存中(类似于不带参数调用 $mount() )。
控制台中有警告告诉你找不到目标el。
如果您不希望这种情况发生,请将实例包装在元素检查中,例如
if(document.querySelector('#el')){ ... }
推荐阅读
- docker - docker compose 延迟容器构建和启动
- c - 颜色一个单元格ncurses
- sql - 简单人车示例的关系模型查询
- java - 有问题的框架:#C [zip.dll+0xa714](JVM 崩溃,因为 EXCEPTION_ACCESS_VIOLATION)
- django - 没有序列化程序的 Django 分页
- typescript - 使用 keyof 提取仅具有特定类型值的键的字符串文字联合
- python - 如果多列的总和为 0,则用 nan 填充列
- c++ - Eclipse CDT:无法添加语言设置提供程序
- dotnetnuke - DNN 站点的导出/导入
- python - 如何将已迭代到列表中的数字添加到字符串中?