Javascript 在下面的情况下,为什么在呈现DOM之后不进行定义?

Javascript 在下面的情况下,为什么在呈现DOM之后不进行定义?,javascript,vue.js,dom,settimeout,lifecycle-hook,Javascript,Vue.js,Dom,Settimeout,Lifecycle Hook,这是本文中的一个演示 我很困惑,为什么我不能在3秒钟后在挂载中获得DOM,而如果console.log立即可以获得受尊重的结果 文件 {{title}} 更新标题 newvue({ el:'生命周期', 数据:{ 标题:“hello Vue” }, beforeCreate:function(){ log(“beforeCreate()”,this.title); }, 已创建:函数(){ log('created()',this.title); }, beforeMount:functio

这是本文中的一个演示

我很困惑,为什么我不能在3秒钟后在
挂载
中获得DOM,而如果
console.log
立即可以获得受尊重的结果


文件
{{title}}
更新标题
newvue({
el:'生命周期',
数据:{
标题:“hello Vue”
},
beforeCreate:function(){
log(“beforeCreate()”,this.title);
},
已创建:函数(){
log('created()',this.title);
},
beforeMount:function(){
log('beforeMount()',this.$el);
},
//混乱
挂载:函数(){
setTimeout(函数(){
console.log('mounted()',this.$el);//结果:未定义
},3000);
//log('mounted()',this.$el);
//结果:。。。
}
})

您需要使用胖箭头语法来确保
已正确绑定:

setTimeout(()=>{
log('mounted()',this.$el);
}, 3000);

请参阅以获取相关信息。

您需要使用胖箭头语法来确保此已正确绑定:

setTimeout(()=>{
log('mounted()',this.$el);
}, 3000);
请参阅以获取相关信息。

请参阅if
setTimeout(()=>{console.log('mounted()',this.$el);},3000)
会减少一些混乱-然后搜索stackoverflow,找到一个关于
这个
在javascript中是如何工作的,以及它在箭头函数中是如何不同的非常好的答案-或者,如果您不想麻烦搜索的话。。。查看是否
setTimeout(()=>{console.log('mounted()',this.$el);},3000)
会减少一些混乱-然后搜索stackoverflow,找到一个关于
这个
在javascript中是如何工作的,以及它在箭头函数中是如何不同的非常好的答案-或者,如果您不想麻烦搜索的话。。。