vue-cli整合axios的几种方法

Vue这个框架现在在单页面应用方面非常受人欢迎。

基于vue-cli创建的项目怎么样才能更好地处理网络请求?

首选的应该就是axios了

这次给刚接触vue的新手介绍一下axios在vue中如何使用

安装的话自己去官网看

一、不推荐的方法

//在要使用网络请求的组件中导入axios
import axios from ‘axios‘
export default {
  name: ‘HelloWorld‘,
  data () {
    return {
      params:{}
    }
  },
  methods: {
//在这里调用网络请求
    request(){
      axios.get(`url${this.params}`).then(result=>{
        console.log(result)
    })
    }
  }
}

这种方法比较麻瓜哪个文件要用就  import axios from ‘axios‘ ,但是太过繁琐,也不利于维护。

二、网络请求较少

//打开main.js全局导入axios

import Vue from ‘vue‘
import App from ‘./App‘
import router from ‘./router‘
import axios from ‘axios‘

//存在prototype中
Vue.prototype.$http = axios

//需要使用axios的其他组件调用时可以通过两种方法
//Vue.$http.get(`url${params}`)
//this.$http.get(`url${params}`)
//但是这样使用会出现一个问题,在单独的js文件中这样做调用不了$http,原因是没有Vue的实例。大多数情况下用这种方法就可以满足大部分需求了

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: ‘#app‘,
  router,
  template: ‘<App/>‘,
  components: { App }
})

三、推荐方法

用方法二已经可以满足大部分需求了,写的时候也比较爽,但是后期如果接口改变,还要一个个去查找修改,会显得很杂乱

这里推荐一种自己平时的做法

//新建一个JS命名为api
import axios from ‘axios‘
//在api中导入axios
let base = ‘/v1‘

//把整个项目的网络请求都写在这个文件中用export导出

export const getproduct = params => { return axios.get(`${base}/product/info/${params}`) }

//这样写方便管理整个项目的网络请求
//在我们要是用这个请求时比如说getproduct

import {
    getproduct
  }from ‘../api/api‘;
export default {
  name: ‘HelloWorld‘,
  data () {
    return {
      params:{}
    }
  },
  methods: {
    getProductList(){
      getproduct(this.params).then(result=>{
        console.log(result);
      })
    }
  }
}
//注意我们导出的时候用的是export 所以导入的时候必须带{}

完!

时间: 2024-08-30 11:12:53

vue-cli整合axios的几种方法的相关文章

vue中数据请求的三种方法

注意请求可能存在跨域问题,需要去配置好 这三种建议使用axios 1.resource Vue 要实现异步加载需要使用到 vue-resource 库. Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求. 先导入一个线上cdn的地址,当然还可以去npm安装,但个人觉得这种方便 <script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"></scri

vue组件之间值传递四种方法汇总

1.父组件获取子组件的数据和方法 $refs 子组件: <template> <div class="header"> <h3>{{ zz }}</h3> </div></template> <script>export default { name: 'cx', data () { return { zz: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX' } }, methods: {

axios的post请求方法---以Vue示例

Axios向后端提交数据的参数格式是json,而并非用的是form传参,post表单请求提交时,使用的Content-Type是application/x-www-form-urlencoded,而使用原生AJAX的POST请求如果不指定请求头RequestHeader,默认使用的Content-Type是text/plain;charset=UTF-8. axios 请求配置中,transformRequest配置允许在向服务器发送前,修改请求数据. // `transformRequest`

vue中组件的四种方法总结

希望对大家有用 全局组件的第一种写法 html: <div id = "app"> <show></show></div> js: 第一步:实例化Vue对象 var app = new Vue({ el:"#app" })     第二步:定义组件 var myComponent = Vue.extend({ template: '<h1>vue全局组件写法一</h1>' });     第三步

解决vue项目eslint校验 Do not use &#39;new&#39; for side effects 的两种方法

import Vue from 'vue' import App from './App.vue' import router from './router' new Vue({ el: '#app', render: h => h(App), router }) 当使用eslint校验运行上面这段代码时(该代码在src/main.js文件中),会报错 ?  http://eslint.org/docs/rules/no-new  Do not use 'new' for side effect

vue开发环境和生产环境里面解决跨域的几种方法

  跨域指浏览器不允许当前页面的所在的源去请求另一个源的数据.源指协议,端口,域名.只要这个3个中有一个不同就是跨域. 这里列举一个经典的列子: #协议跨域 http://a.baidu.com访问https://a.baidu.com: #端口跨域 http://a.baidu.com:8080访问http://a.baidu.com:80: #域名跨域 http://a.baidu.com访问http://b.baidu.com:   现在很多公司都是采用前后分离的方式开发.那么出现经常和会

两种方法使vue实现jQuery调用

引言 如果说vue是前端工程化使用较多的骨架,那么JavaScript就是我们的前端的细胞.MVVM模式让我们体验到前端开发的便携,无需再过多的考虑DOM的操作.而vue的渐进式开发(逐步引用组件,按需引入),也让许多新手前端开发人员逐步绕过对jQuery的学习.jQuery需要记忆的内容颇多,这也让jQuery变得不那么受新入行开发者喜欢. 在前端工程化的需求没有普及的时候,许多公司使用的是后端渲染技术,为了能够实现友好的前端交互效果,需要写好大量的jQuery.JavaScript和CSS,

vue不是内部命令、安装@vue/cli失败、找不到vue.cmd文件等问题的解决方法

最近打算用vue-cli写项目,发现用官网提供的安装方式npm install @vue/cli -g怎么都安装不上,一直报如下错误 EPERM: operation not permitted, rename 'C:\Users\xxx\AppData\Roaming\npm\node_modules\@vue\cli\node_modules\abbrev\package.json.352729074' -> 'C:\Users\xxx\AppData\Roaming\npm\node_mo

vue中触发键盘事件的两种方法和如何自定义键位事件,完整代码!

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con