10.请求数据

邮差的信 提交于 2019-12-01 06:22:40

在vue中,有三种常用的数据请求方式:

/*
三种数据请求方式
vue-resource
axios
fetch-jsonp
*/

1.vue-resource

1.安装vue-resource

 

 

cnpm install vue-resource --save

2.在src/main.js中引用

import VueResource from 'vue-resource';
Vue.use(VueResource)

 

 3.在组件中使用home.vue

<template>
    <div>
        <h2>这是一个首页组件</h2>
        <button @click="getData()">请求数据</button>
        <hr>
        <br>
        <ul>
          <li v-for="(item,index) in list" :key="index">{{item.title}}</li>
        </ul>
    </div>
</template>
<script>
/*
三种数据请求方式
vue-resource
axios
fetch-jsonp
*/
export default {
  name: 'home',  
  data () {
    return {
        msg:'首页组件',
        list:[]
    }
  },
  methods:{
    getData(){
      // 请求数据
      var api='http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page=1'
      var _self=this
      this.$http.get(api).then(
        function (response) {
          console.log(response)
          _self.list=response.data.result
        },
        function(err){
          console.log(err)
        }
      )
    }
  },
  components:{
  }

}
</script>
<style lang="scss" scoped>
h2{
    color: red;
}
</style>

 

 

 

2.axios

1.安装axios

cnpm install axios --save

 

 2.在组件中引入

使用箭头函数,不用担心this的指向

<template>
    <div>
        <h2>这是一个首页组件</h2>
        <button @click="getData()">请求数据</button>
        <hr>
        <br>
        <ul>
          <li v-for="(item,index) in list" :key="index">{{item.title}}</li>
        </ul>
    </div>
</template>
<script>
import Axios from 'axios';
export default {
  name: 'home',  
  data () {
    return {
        msg:'首页组件',
        list:[]
    }
  },
  methods:{
    getData(){
      // 请求数据
      var api='http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page=1'
      Axios.get(api).then((response)=>{console.log(response);this.list=response.data.result}).catch((err)=>{console.log(err)})
    }
  },
  components:{
  }

}
</script>
<style lang="scss" scoped>
h2{
    color: red;
}
</style>

 

 

 3.fetch-jsonp

使用方法与axios相同

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!