我有一个奇怪的问题。我认为$refs可以从mounted()生命周期中获得
但如果我尝试log直接它是我得到未定义的对象:
mounted() {
// logs undefined
console.log(
this.$refs.tabsMenu
)
}
Run Code Online (Sandbox Code Playgroud)
等待 1ms 后它就被定义了,我可以得到对象
mounted() {
setTimeout(() => {
// logs the object
console.log(
this.$refs.tabsMenu
)
}, 1) // <-- just 1ms!
}
Run Code Online (Sandbox Code Playgroud)
对此有什么想法吗?
我的(简化的)模板如下所示
<template>
<div>
<baseContainer>
<ul ref="tabsMenu" id="tabs-menu" class="flex-inline flex w-full">
<li>Home</li>
<!-- many more items -->
<li>Contact</li>
</ul>
</baseContainer>
</div>
</div>
Run Code Online (Sandbox Code Playgroud) 我在使用此代码与我的数据或方法进行通信时遇到问题,
created() {
document.addEventListener( 'touchstart', function( e ) {
this.myData = e.changedTouches[ 0 ].screenY
}
}
Run Code Online (Sandbox Code Playgroud)
我猜这是因为函数的范围,.这在函数内部不起作用,但是我如何与我的数据通信或激活事件监听器函数之外的任何方法呢?