来自vue官方文档的解释:
所有生命周期钩子的 this
上下文将自动绑定至实例中,因此你可以访问 data、computed 和 methods。这意味着你不应该使用箭头函数来定义一个生命周期方法 (例如 created: () => this.fetchTodos()
)。因为箭头函数绑定了父系上下文,所以 this
不会指向预期的组件实例,并且this.fetchTodos
将会是 undefined。
箭头函数自己没有定义 this 上下文,而是绑定到其父函数的上下文中。当你在 Vue 程序中使用箭头函数时,this 关键字并不会绑定到 Vue 实例,因此会引发错误。所以在编写如钩子函数这类时强烈建议改用标准函数声明