至於fetch的介紹,在這裏就很少說了,官方和網絡上的說明很多html
以前使用jquery的Ajax朋友,能夠嘗試一下使用一下這個新的apivue
推薦使用isomorphic-fetch,兼容Node.js和瀏覽器兩種環境運行。jquery
npm install --save isomorphic-fetch es6-promise
這裏我按照官方網站的介紹,具體在vue.js中寫了一個範例,只須要拷貝代碼到新的文件Index.vue就能夠試一試看看了es6
<template> <div class="index"> <div v-for="item in items" class="story"> <div>{{item.title}}</div> <div class="story-author">{{item.author}}</div> <div>{{item.date}}</div> <div v-html="item.body"></div> </div> </div> </template> <script> require('es6-promise').polyfill(); require('isomorphic-fetch'); export default { name: 'hello', data() { return { msg: 'Welcome to Your Vue.js App', items: [] } }, created: function () { let vueThis = this; fetch('http://offline-news-api.herokuapp.com/stories') .then(function (response) { if (response.status >= 400) { throw new Error("Bad response from server"); } return response.json(); }) .then(function (stories) { console.log(stories); vueThis.items = stories; }); } } </script> <!-- Add "scoped" attribute to limit CSS to this component only --> <style scoped> .story { border: 1px solid #ccc; padding: 5px; } .story-author { font-weight: bold; font-size: 18px; font-style: italic; } </style>
因爲IE對Promise的不支持,因此還須要使用 promise-polyfillvue-router
npm install promise-polyfill --save-exact
router/index.js文件添加引用(紅色標記的地方)npm
import Vue from 'vue'
import Router from 'vue-router'
import Promise from 'promise-polyfill' if (!window.Promise) { window.Promise = Promise; }
const Hello = r => require.ensure([], () => r(require('../pages/Hello')), 'group-b')
const Index = r => require.ensure([], () => r(require('../pages/Index')), 'group-a')
Vue.use(Router)
export default new Router({
routes: [
{ path: '/', name: 'Index', component: Index },
{ path: '/hello', name: 'Hello', component: Hello }
]
})
因爲個人瀏覽器是IE11,修改文檔模式的狀況下,只有IE9+以上運行正常,IE的其餘瀏覽器有要求的請慎用。json
以上只是GET獲取數據的範例,其餘的修改Header,跨域等一些常見問題,按照fetch對應的用法使用就能夠了api
這裏只是對於初次使用vue.js不知道怎麼獲取數據作的一個簡單的範例。跨域
今天寫文章不利,快寫完的時候瀏覽器崩潰,連歷史記錄都沒有留下,只能從簡從新寫了,就寫到這裏吧,若有幫助您的地方,推薦一下吧!promise