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的一個插件
①安裝:在項目根目錄進行安裝: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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
vue el-tree 默認展開第一個節(jié)點的實現(xiàn)代碼
這篇文章主要介紹了vue el-tree 默認展開第一個節(jié)點的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
解決vue prop傳值default屬性如何使用,為何不生效的問題
這篇文章主要介紹了解決vue prop傳值default屬性如何使用,為何不生效的問題。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
基于iview-admin實現(xiàn)動態(tài)路由的示例代碼
這篇文章主要介紹了基于iview-admin實現(xiàn)動態(tài)路由的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-10-10
基于腳手架創(chuàng)建Vue項目實現(xiàn)步驟詳解
這篇文章主要介紹了基于腳手架創(chuàng)建Vue項目實現(xiàn)步驟詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08
elementUI給el-tabs/el-tab-pane添加圖標效果實例
這篇文章主要給大家介紹了關于elementUI給el-tabs/el-tab-pane添加圖標效果實例的相關資料,文中通過實例代碼介紹的非常詳細,對大家學習或者使用elementUI具有一定的參考學習價值,需要的朋友可以參考下2023-07-07

