vue-resource 是一個基于Vue.js 的插件,用于處理 AJAX 請求和 REST API,提供了與服務器交互的簡單和靈活的 API。它依賴于 Promise 和 XMLHttpRequest 對象實現 HTTP 請求和響應操作。
vue-resource 的主要功能包括:GET、POST、PUT 和 DELETE 請求,跨域請求的處理,攔截器,適配器等。
// 安裝vue-resource npm install vue-resource --save // 引入vue-resource import VueResource from 'vue-resource'; Vue.use(VueResource);
GET 請求是最常用的請求類型,用于獲取數據。vue-resource 實現了幾種不同的方式來處理 GET 請求:
// 通過query傳參 this.$http.get('/api/data', {params: {id: 1}}); // 通過URL傳參 this.$http.get('/api/data?id=1'); // 獲取JSON數據 this.$http.get('/api/data').then(response =>{ console.log(response.body); }, response =>{ console.log(response.status); });
POST 請求用于向服務器提交數據,可以通過data參數傳遞數據:
this.$http.post('/api/data', {name: 'vue', age: '23'}).then(response =>{ console.log(response.body); }, response =>{ console.log(response.status); });
PUT 請求用于向服務器更新數據:
this.$http.put('/api/data/1', {name: 'vue', age: '23'}).then(response =>{ console.log(response.body); }, response =>{ console.log(response.status); });
DELETE 請求用于向服務器刪除數據:
this.$http.delete('/api/data/1').then(response =>{ console.log(response.body); }, response =>{ console.log(response.status); });
vue-resource 支持處理跨域請求。可以在Vue實例中設置跨域請求頭信息:
Vue.http.headers.common['Access-Control-Allow-Origin'] = '*';
vue-resource 支持攔截器功能,可以在發送請求前和獲取響應后對它們進行處理。可以使用Vue的http攔截器或全局攔截器。
http攔截器只對當前的Vue實例有效:
this.$http.interceptors.push((request, next) =>{ request.credentials = true; // 攜帶cookie next(); });
全局攔截器對所有的Vue實例有效:
Vue.http.interceptors.push((request, next) =>{ request.credentials = true; // 攜帶cookie next(); });
vue-resource 還支持適配器功能,可以根據不同的請求類型使用不同的適配器。Vue-resource默認使用 XMLHttpRequest 適配器,但是也可以使用其他的適配器,如 fetch 或模擬的XHR。
// 使用fetch適配器 Vue.http.options.emulateHTTP = true; Vue.http.options.emulateJSON = true; Vue.http.options.adapter = require('vue-resource/lib/adapters/fetch');
總結來說,vue-resource 提供了一系列簡單和靈活的API,幫助開發者使用Vue.js 構建符合RESTful 思想的Web應用。它提供了處理Ajax請求和REST API的便捷方式,并且額外的功能可以靈活地適應不同的開發需求。