我正在开发一个Vue组件,它将通过CMS系统放置在多个网站上.我遇到的问题是即使我的js脚本加载顺序是正确的,有时我会收到此错误:
Uncaught ReferenceError: Vue is not defined
at HTMLDocument.<anonymous>
Run Code Online (Sandbox Code Playgroud)
Vue通过cdn加载,它位于组件代码之上.
所有的Vue代码都是这样运行的:
document.addEventListener("DOMContentLoaded", () => {
// here is the Vue code
});
Run Code Online (Sandbox Code Playgroud)
我甚至在DOMContentLoaded事件中添加了一个setTimeout(),但仍然没有做到这一点.
window.onload = function()在所有情况下都不起作用.我还是经常遇到这个错误.脚本加载到正文中.
你知道它可以是另一种方法吗?我想确保在激活Vue代码的那一刻,Vue已加载并准备在页面上初始化.谢谢!
Vue.js允许在元素上应用事件:
<div id="app">
<button @click="play()">Play</button>
</div>
Run Code Online (Sandbox Code Playgroud)
但是如何在window对象上应用事件?它不在DOM中.
例如:
<div id="app">
<div @mousedown="startDrag()" @mousemove="move($event)">Drag me</div>
</div>
Run Code Online (Sandbox Code Playgroud)
在这个例子中,如何监听mousemove事件window?