В Nuxt.js встроена поддержка модуля $axios, который предоставляет удобный способ работы с HTTP-запросами на стороне клиента и на стороне сервера. Однако, если вы хотите использовать экземпляр Axios напрямую, а не через $nuxt.$axios, вам нужно выполнить некоторые дополнительные шаги.
Шаг 1: Установите пакет axios, если его еще нет:
npm install axios
Шаг 2: Создайте файл axios.js в папке plugins вашего Nuxt.js проекта:
import axios from 'axios' export default ({ app, store, redirect }) => { // Создайте и настройте экземпляр Axios const api = axios.create({ baseURL: 'http://example.com/api', // Замените на ваш базовый URL headers: { common: { Accept: 'text/plain, application/json, */*' } } }) // Можно определить интерцепторы запросов/ответов api.interceptors.request.use((config) => { // Добавьте здесь вашу логику для обработки запроса return config }, (error) => { return Promise.reject(error) }) api.interceptors.response.use((response) => { // Добавьте здесь вашу логику для обработки ответа return response }, (error) => { return Promise.reject(error) }) // Доступ к экземпляру Axios через контекст приложения app.$axios = api // Доступ к экземпляру Axios также через контекст Nuxt // Это позволяет использовать его во время серверного рендеринга и посредников if (process.client) { // Доступ на клиентской стороне window.$axios = api } }
Шаг 3: Импортируйте axios.js в Nuxt.js, добавив его в опцию plugins
вашего файла nuxt.config.js:
module.exports = { // ... plugins: [ { src: '@/plugins/axios', ssr: true } ], // ... }
После выполнения этих шагов, вы можете использовать экземпляр axios, импортированный через файл axios.js, в любом месте вашего кода:
export default { asyncData({ app }) { return app.$axios.get('/users') .then((response) => { // Обработка данных }) .catch((error) => { // Обработка ошибок }) } }
Теперь у вас есть полный контроль над экземпляром Axios и можете использовать его для HTTP-запросов по вашему усмотрению.