Home > Web Front-end > Vue.js > How to request data in vue.js

How to request data in vue.js

coldplay.xixi
Release: 2020-11-12 10:58:46
Original
2522 people have browsed it

Vue.js method of requesting data: first install the [vue-resource] module; then introduce [vue-resource] in [main.js] and use it directly in the component.

How to request data in vue.js

[Related article recommendations: vue.js]

vue.js request data Method:

First, vue-resource requests data

Introduction: vue-resource requests data method is an official plug-in

Usage steps:

1. Install the vue-resource module

cnpm install vue-resource --save
Copy after login

Add --save to reference it in package.json, indicating use in the production environment. Because in our daily development, if we want to package the code to others or upload it to github, or if we want to publish the code, package.json is the package required for installation. If you only use it in the development environment, you only need --save-dev. Some are only used in the development environment, and some are used in the production environment.

2. Introduce vue-resource in main.js

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

3. Use

this.$http.get(地址).then(function(){
 
})
Copy after login

directly in the component. Note: this.$http.get() Various http requests, etc. all inherit promise. Promise is an asynchronous request; secondly, this in the .then arrow function represents the context. According to the definition of arrow function this, it can be seen that the value has been assigned only when the function is defined. This refers to the object that defines the function. In Vue, the object is the current page of methods. So this guides the data in data. If you want to get the data of the function outside the wrapping function, that is the concept of closure. The implementation method is to add a var that = this to the outer function; Save the outer this into that first.

Example:

Info.vue

<template>
  <div id="info">
    <button @click="getData">获取数据</button>
    <ul>
      <li v-for="(item,index) in list" v-bind:key="index">
        {{item.title}}
      </li>
    </ul>
  </div>
</template>
 
<script>
  export default {
    name: "Info",
    data() {
      return {
        list: []
      }
    },
    methods: {
      getData: function () {
        let api = &#39;http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page=1&#39;;
        //此处推荐使用箭头函数。
        this.$http.get(api).then((res)=>{
          this.list = res.body.result;
        }, (err)=>{
          console.log(err);
        });
      }
    },
    mounted() {
      this.getData();
    }
  }
</script>
Copy after login

If arrow functions are not applicable in getData(), you need to pay attention to this issue.

getData: function () {
  let api = &#39;http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page=1&#39;;
  const _this = this;
  this.$http.get(api).then(function (res) {
    _this.list = res.body.result;
  }, function (err) {
    console.log(err);
  });
}
Copy after login

Second, axios request data

Introduction: This is a third-party plug-in github address: https://github.com/axios/axios

axios and fetch-jsonp are both third-party plug-ins

1. Install

cnpm install axios --save
Copy after login

and call directly. The difference from vue-resource is that aixos is called once on a page every time it is used on that page. vue-resource is bound globally.

2. Where to use and where to introduce axios

Axios.get(api).then((response)=>{
  this.list=response.data.result;
}).catch((error)=>{
  console.log(error);
})
Copy after login

About cross-domain requests of axios

Configure in config->index.js->proxyTable as follows: target fill in yourself The desired address

How to request data in vue.js

# is configured as follows. The url is the parameter after the address. After configuration, just run npm run dev now.

How to request data in vue.js

About multiple concurrent requests:

How to request data in vue.js

The above is a cross-domain version of the same address. If you want to get different addresses For cross-domain, you only need to change the configuration of config->index.js->proxyTable and add an address block.

Three, about fetch-jsonp

github address: https://github.com/camsong/fetch-jsonp

1. Installation

cnpm install fetch-jsonp --save
Copy after login

2. Where to use and where to introduce fetch-jsonp

fetchJsonp(&#39;/users.jsonp&#39;)
 .then(function(response) {
  return response.json()
 }).then(function(json) {
  console.log(&#39;parsed json&#39;, json)
 }).catch(function(ex) {
  console.log(&#39;parsing failed&#39;, ex)
 })
Copy after login

Related free learning recommendations: JavaScript(video)

The above is the detailed content of How to request data in vue.js. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template