заключается в использовании патерна фабрики, чтобы по необходимости можно было бы в getdata.js добавлять дополнительные методы axios для фильтрации. Код работает, но мне кажется он превратился в хлам. Есть какие идеи упростить ?
main.vue
import { factory } from '@/helpers/axios/factory.js'
const getdata = factory.get('posts')
export default {
name: 'answers',
resource: 'Answers',
data: () => ({
url: '/answers',
answers: [],
isLoading: false
}),
created () {
this.fetch('/answers')
},
methods: {
async fetch (url) {
this.isLoading = true
const { data } = await getdata.getAll(url)
this.isLoading = false
this.answers = data
}
}
}
factory.js
import getdata from './getdata'
const datax = { posts: getdata }
export const factory = { get: name => datax[name] }
getdata.js
import Base from './base.js'
export default {
getAll (resource) {
return Base.get(${resource})
}
}
base.js
import axios from 'axios'
const baseDomain = 'http://localhost:3000'
const baseURL = ${baseDomain}/api/v1
export default axios.create({
baseURL
// In case that you need a token:
// headers: { "Authorization": "Bearer yourToken" }
})
Обсуждают сегодня