Vuejs由1.0更新到了2.0版本。HTTP請求官方也從推薦使用Vue-Resoure變爲了axios。接下來咱們來簡單地用axios進行一下異步請求。(閱讀本文做者默認讀者具備使用npm命令的能力,以及具有ES6的能力,以及等等。。。)vue
首先咱們來安裝Vue-Cli開發模板(這個模板能夠快速生成vuejs的運行配置環境,可使新手快速免除配置搭建出運行界面),這裏我使用cnpm命令webpack
打開命令窗口:ios
cnpm install -g vue-cli
等待片刻,便可安裝完畢。web
而後新建一個Vuejs項目vue-cli
vue init webpack axiosproject
切換到項目目錄,執行命令:npm
cnpm install axios --save --dev
最後執行命令安裝項目所需依賴:axios
cnpm install
稍等片刻,便可完成。如今咱們來跑一下用Vue-Cli搭建出來的項目,執行命令:後端
cnpm run devapi
自動瀏覽器自動彈出這個界面就說明上面的步驟咱們成功實現了。跨域
接下來我纔來真正的開始用編輯器來使用axios。打開VS Code(編輯器請自行用本身喜歡的,本人軟粉,因此首選VS Code),咱們來改造一下main.js入口文件
import Vue from 'vue'
import App from './App'
import axios from 'axios'
Vue.prototype.$http = axios;
/* eslint-disable no-new */
new Vue({
el: '#app',
template: '<App/>',
components: { App }
})
咱們引用了axios,再將axios這個對象clone到Vue的$http這個屬性上,之後咱們就能夠在其餘組件裏使用axios來進行 異步請求了。很少說了,咱們最終的結果就是將請求的數據打印到瀏覽器控制檯就算成功了。我使用的接口是本地模擬的,不過區別不大。這裏特別說明一下關於跨域,跨域須要配置返回的請求頭,在asp.core作以下處理,其餘後端配置能夠參照;
這是Get接口返回在瀏覽器返回結果:
好,接下來咱們在Hello.vue這個組件裏寫一些腳本
<script>
export default {
name: 'hello',
data () {
return {
msg: 'Welcome to Your Vue.js App'
}
},
created:function(){
this.HelloAxios();
},
methods:{
HelloAxios(){
this.$http.get('http://localhost:54903/api/values').then(m=>console.log(m.data));
}
}
}
</script>
至此咱們完成了Get請求,接下來,咱們完成Post請求
<script>
export default {
name: 'hello',
data () {
return {
msg: 'Welcome to Your Vue.js App'
}
},
created:function(){
this.HelloAxios();
this.HelloAxiosPost('HelloAxiosPost');
},
methods:{
HelloAxios(){
this.$http.get('http://localhost:54903/api/values').then(m=>console.log(m.data));
},
HelloAxiosPost(val){
let str = 'value='+val
this.$http.post('http://localhost:54903/api/values',str).then(m=>console.log(m.data));
}
}
}
</script>
結果如圖,咱們傳的值'HelloAxiosPost'也打印出來了。有人可能會問
這裏問什麼要這麼寫,官方文檔是這麼寫的
親測這樣寫不行。有興趣的朋友能夠自行測試。那咱們再來講說爲什麼是那個字符串
查看chorme F12查看一下網絡請求,發現咱們請求的值就是Form Data。這樣咱們就能夠拼接參數請求了,多參數格式爲param1=value1¶m2=value2。
好了,至此本文結束了(第一次發文章,但願你們多多支持,嘴下留情,各位老鳥請無視。)