Vue實現(xiàn)讓頁面加載時請求后臺接口數(shù)據(jù)
讓頁面加載時請求后臺接口數(shù)據(jù)
<template> ? <div class="hello"> ? ? <div> ? ? ? {{title}} ? ? </div> ? ? <hr> ? ? <button @click="convert">點擊獲取數(shù)據(jù)</button> ? </div> </template>
<script> ? import axios from 'axios' ? export default { ? ? name: 'HelloWorld', ? ? data() { ? ? ? return { ? ? ? ? title: "靜態(tài)數(shù)據(jù)" ? ? ? } ? ? }, ? ? //在這里調(diào)用ajax請求方法 ? ? created(){ ? ? ? this.convert(); ? ? }, ? ? methods: { ? ? ? convert: function () { ? ? ? ? axios.get("api/sysUser/getSomething").then(res => { ? ? ? ? ? this.title = res.data; ? ? ? ? }) ? ? ? } ? ? } ? } </script>
Vue請求后臺數(shù)據(jù)幾種方式
常用的為:vue-resource
、axios
、fetch-jsonp
1、vue-resource官方提供的vue的一個插件
①安裝:在項目根目錄進(jìn)行安裝:cnpm install vue-resource --save
save說明:將此插件名插入到pachage.json文件中,別人在使用時,直接npm install,就會安裝package.json里的所配置的軟件插件名稱了。
②引入vue-resource
在main.js中引入這個插件,并使用這個插件
import VueResource from 'vue-resource' Vue.use(VueResource );
③示例:
export default{ ? ? ? ? data(){ ? ? ? ? ? ? return { ? ? ? ? ? ? ? ? ? msg:'我是一個首頁組件msg', ? ? ? ? ? ? ? ? flag:true, ? ? ? ? ? ? ? ? list:[] ? ? ? ? ? ? } ? ? ? ? }, ? ? ? ? methods:{ ? ? ? ? ? ? ? getData(){ ? ? ? ? ? ? ? ? ? ? //請求數(shù)據(jù) ? ? ? ? ? ? ? ? ? ? ? var api='http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page=1';? ? ? ? ? ? ? ? ? ? ? ? this.$http.get(api).then((response)=>{ ? ? ? ? ? ? ? ? ? ? ? ? console.log(response); ? ? ? ? ? ? ? ? ? ? ? ? ? //注意this指向? ? ? ? ? ? ? ? ? ? ? ? ? this.list=response.body.result;??? ? ? ? ? ? ? ? ? ? ? },function(err){? ? ? ? ? ? ? ? ? ? ? ? ? ? ? console.log(err);? ? ? ? ? ? ? ? ? ? ? }) ? ? ? ? ? ? } ? ? ? ? }, ? ? ? ? mounted(){ ?/*生命周期函數(shù)*/? ? ? ? ? ? ? ? ? this.getData();? ? ? ? ? } ? ? }
2、axios的使用
安裝 cnpm install axios --save
哪里用哪里引入axios
import Axios from 'axios'; ? ? export default{ ? ? ? ? data(){ ? ? ? ? ? ? return { ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? list:[] ? ? ? ? ? ? } ? ? ? ? }, ? ? ? ? methods:{ ? ? ? ? ? ? ? getData(){ ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? var api='http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page=1'; ? ? ? ? ? ? ? ? Axios.get(api).then((response)=>{ ? ? ? ? ? ? ? ? ? ? this.list=response.data.result; ? ? ? ? ? ? ? ? }).catch((error)=>{ ? ? ? ? ? ? ? ? ? ? console.log(error);? ? ? ? ? ? ? ? ? })? ? ? ? ? ? ? } ? ? ? ? }, ? ? ? ? mounted(){ ?/*生命周期函數(shù)*/ ? ? ? ? ? ? ? this.getData(); ? ? ? ? } ? ? ? ? ? }
3、fetch-jsonp不受跨域限制
安裝 cnpm i fetch-jsonp -S
用法:在項目中引入
import ?fetchJsonp ?from ?fetch-jsonp let domain=`http://api.douban.com/v2/movie/top250` ? ? ? ? fetch(this.domain,{ ? ? ? ? ? ? start:0, ? ? ? ? ? ? count:20, ? ? ? ? ? ? method:'GET', ? ? ? ? ? ? mode:'no-cors' ? ? ? ? }).then(response=>{ ? ? ? ? ? ? console.log(response) ? ? ? ? ? ? console.log(response.json()) ? ? ? ? ? ? return response.json() ? ? ? ? }).then(res=>{ ? ? ? ? ? ? console.log(res) ? ? ? ? }).catch(e=>{ ? ? ? ? ? ? console.log(e) ? ? ? ? })
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue el-tree 默認(rèn)展開第一個節(jié)點的實現(xiàn)代碼
這篇文章主要介紹了vue el-tree 默認(rèn)展開第一個節(jié)點的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05解決vue prop傳值default屬性如何使用,為何不生效的問題
這篇文章主要介紹了解決vue prop傳值default屬性如何使用,為何不生效的問題。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09基于iview-admin實現(xiàn)動態(tài)路由的示例代碼
這篇文章主要介紹了基于iview-admin實現(xiàn)動態(tài)路由的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10基于腳手架創(chuàng)建Vue項目實現(xiàn)步驟詳解
這篇文章主要介紹了基于腳手架創(chuàng)建Vue項目實現(xiàn)步驟詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08elementUI給el-tabs/el-tab-pane添加圖標(biāo)效果實例
這篇文章主要給大家介紹了關(guān)于elementUI給el-tabs/el-tab-pane添加圖標(biāo)效果實例的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用elementUI具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2023-07-07