JavaScript 中,使用 this 访问的是当前函数的上下文,它的值是在函数运行时动态绑定的。这意味着,如果你在一个函数内部使用 this ,那么它指向的是在运行该函数时,该函数所处的对象。

因此,在 Axios.then() 方法中使用 this 访问数据可能会出现问题,因为 .then() 方法可能不是在你的组件内部被调用的,所以 this 的值可能不是指向你的组件的。

有几种解决方法:

使用箭头函数来绑定 this:
因为箭头函数不会创建新的作用域,所以它们会继承外部作用域中的 this。例如:

使用 bind() 方法绑定 this

使用结构赋值获取响应数据:

使用 then 方法之前先将 this 存储到一个变量中,然后在 then 方法中使用这个变量。例如:

箭头函数不会创建自己的 this 上下文,而是会继承自外围(父级)作用域的 this 值。这就意味着,箭头函数中的 this 与普通函数中的 this 不同。

在箭头函数内部,this 的值是在定义函数时确定的,而不是在运行时确定的。它会捕获并继承外围作用域中的 this 值,无论该值是什么。

种特性常常用于解决传统 JavaScript 中的 this 问题。在传统函数中,this 的值会根据调用方式和上下文发生变化,会导致一些意外的结果。而箭头函数的 this 是固定的,不会被改变,极大地简化了代码的编写和阅读。

下面是一个示例来演示箭头函数的 this 特性:

在上述示例中,箭头函数作为 setTimeout 的回调函数,它继承了外围作用域中的 this 值,即调用 sayHello 方法的 obj 对象。因此,在箭头函数内部访问 this.name 将会输出 obj.name 的值。

需要注意的是,因为箭头函数的 this 值是继承自外围作用域的,所以它无法通过 call、apply 或 bind 方法来改变 this 的指向。你可以在需要使用动态指向的场景中使用普通函数来解决。

GET 请求

POST 请求

并行请求

创建实例

Response

Config

拦截器

错误处理

取消请求