包括所有页面上的Vue js实例,即使元素不存在
Including Vue js instances on all pages, even when element doesn't exist
在我的web应用程序中,我使用Vue.js为网站周围的一些小组件。我将Vue实例存储在它们自己的js文件中,我使用gulp连接,缩小等。
有一个小问题,如果特定Vue实例的目标元素在页面上不存在,则在控制台中出现警告:
[Vue warn]: Cannot find element: #vueElement
虽然这并没有伤害任何东西,因为它是它让我想知道正确的方法是加载我的Vue实例。如果目标元素不存在,是否有办法阻止它发射?
var element = document.getElementById('vueElement');
if(element != null)
{
// your code will be here, an example is shown below
var app = new Vue(
el: '#vueElement'
);
}
我希望这工作!
我没有看到任何内置的方法来做到这一点。
如果在构造函数中提供el
选项,Vue实例将自动编译。
如果您不提供el
选项,您可以使用$mount方法手动编译组件
你可以这样写:
var app = new Vue({}); //don't include the el option here
if(document.getElementById("vueElement")) {
app.$mount("#vueElement");
}
我个人认为,为了达到这个目的,我使用一个函数,它只在目标元素存在时才初始化Vue:
function vueInit(elementId, options) {
var element = document.getElementById(elementId);
if (element) {
options.el = element;
new Vue(options);
}
}
用法:
vueInit("app", {
data: {
message: "It works!"
}
});
https://jsfiddle.net/50wL7mdz/14194/相关文章:
- 正在将事件处理程序添加到不存在的类
- javascript如果图像不存在don't加载它
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- JavaScript-如果以前不存在文本,如何从文本区域删除新行
- 如何将一个函数附加到一个不存在的元素上
- 在scala或scalajs Diode中,现有类型中的任何一种都符合“;更新一个没有'还不存在”;
- 查找数组's按属性不存在于另一个数组中的对象
- 用javascript在对象上创建不存在的方法
- 仅当值不为'不存在
- casperjs-css选择器存在,但当单击它时会引发“”;CasperError:无法在不存在的选择器“”上调度mou
- 运行时不存在Javascript函数
- 使用webdriver和selenium验证元素是否不存在
- 如果文件不存在,fs.watch是否有错误处理程序
- 试图把注意力集中在一个不重要的元素上是不是一种糟糕的做法;不存在
- Backbonejs:在视图中渲染的模型,但在集合中不存在
- 从params推送到对象(如果不存在)
- 当锚点HREF源不存在时隐藏图像
- 如何从网站获得apple touch图标,如果没有;不存在,则显示收藏夹
- 什么是 ClojureScript 类似地将不存在的对象值设置为 JavaScript 中的 null
- 包括所有页面上的Vue js实例,即使元素不存在