Сделал поисковик по википедии по уроку https://www.youtube.com/watch?v=uiavUaBXxXw&t=268s. Хочу заменить jsonp на fetch, но ничего не выходит а что-то конкретное в сети не нашел.
store. js
import Vue from 'vue'
import Vuex from 'vuex'
import jsonp from 'jsonp'
import fetch from 'vue-fetch'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
results: []
},
getters: {
results(state) {
let results = state.results
return results.map(item => {
item.url = 'https://ru.wikipedia.org/wiki/' + item.title
return item
})
}
},
mutations: {
set(state, {type, items}) {
state[type] = items
}
},
actions: {
search({dispatch, commit}, query) {
const url = 'https://en.wikipedia.org/w/api.php?action=query&list=search&format=json&srsearch=' + query
// jsonp(url, (error, response) => {
// if (error) {
// throw error
// }
//
// const results = response.query.search
//
// commit('set', {type: 'results', items: results})
// })
//
fetch(url)
.then(function (response) {
response.json().then(function (data) {
const results = response.query.search
commit('set', {type: 'results', items: results})
})
}
)
}
}
})
Закомментирован код для jsonp
Jsonp:
Fetch:
Этот алгоритм считает кол-во вхождений элемента в массиве