vue.js - Vue 2 - 如何在正确的时间正确地实例化
问题描述
我的应用程序的 vue 实例之一似乎实例化得太早了。即使带有document.addEventListener('DOMContentLoaded', ...)
. 结果,我注意到事件侦听器没有正确绑定。一个简单的@click="test"
(其中对 a 的测试引用console.log
)不起作用。
下面,请参阅@click
不起作用的代码。它是一个位于 vue 实例中的组件,在 DOMContentReady 上实例化:
const navBurger = {
template: `
<nav class="burgerNav"">
<button class="burgerNav__icon" @click="test">
</button>
</nav>
`,
methods: {
test: function() {
console.log('test')
}
}
}
export default navBurger
我通过在实例化该组件的根实例之前添加一点超时(200ms)来“解决”这个问题,但这似乎是一个混乱而脆弱的解决方案。有什么干净的方法可以在正确的时间实例化吗?我需要这个实例尽快准备好,因为它包含位于标题中的导航。
下面,找到js文件的加载顺序。目标文件是assets/js/components/nav/nav.js
. 但是更改此顺序并不能解决问题。
<!--========== VUE ==========-->
<script src="<?= url('assets') ?>/js/libraries/vue.js"></script>
<!--========== SCRIPTS ==========-->
<script src="<?= url('assets') ?>/js/components/nav/nav.js" type="module" defer></script>
<script src="<?= url('assets') ?>/js/shop.js" type="module" defer></script>
<script src="<?= url('assets') ?>/js/script.js" type="module" defer></script>
<script src="https://js.stripe.com/v3/" defer></script>
解决方案
推荐阅读
- mongodb - 如何在 HELM 部署中使用 mongoDB 4.2?
- java - 如何使用 Java API 更新 MongoDB 中的嵌套实体
- html - 调整浏览器页面大小时,图片在同一位置
- c - C: strtok 传递分段错误
- java - 避免多次检查 != null
- ruby - 计算实例变量的映射
- reactjs - React TypeScript:如何传播嵌套状态对象的其他值
- python - 使用特定列在 scikit-learn 中估算分类缺失值
- angularjs - 在 HTML 输入/文本区域中的指定位置插入文本
- django - 使用 makemigrations 命令不会发生 Django 2.1.5 迁移