最近使用nuxtjs服务端渲染框架,在异步请求时遇到两个问题,一是怎么使用axios, 二是怎么在asyncData方法中使用axios

当使用脚手架create nuxt-app创建项目时,会提示是否集成axios, 如果不选择,后面则使用方式一请求异步数据,如果选择,后面则使用方式二请求异步数据

如上图,按照提示到选择axios的步骤,键盘"up", "down"移动箭头,space空格键选择或者取消, 然后继续enter进入下一步即可。

方法一:普通的方式

1 .npm或者yarn安装依赖包

 $ npm install axios -S

2 . 引入到组件中

 import axios from 'axios';

 export default {
/* 其他代码 */
// 使用Promise
asyncData ({params}) {
return axios.get(`https://maoyan.com/ajax/cities`)
.then(res => {
console.log(res)
})
} // 使用 async ... await , 与Promise选择一种即可
async asyncData({params}) {
let { res } = await axios.get(`https://maoyan.com/ajax/cities`)
console.log(res)
} /*其他代码*/
}

方法二:集成的方式

  首先需要在配置文件nuxt.config.js中配置axios项

 modules: [
'@nuxtjs/axios',
'@nuxtjs/bulma'
],
/* 需要使用 aixos必须配置以下两项axios和proxy*/
axios: {
prefix: '/api/',
proxy: true
}, proxy: {
'/api/': {
target: 'https://maoyan.com/',
pathRewrite: {
'^/api/': ''
}
}
},

在组件中使用axios, 无需在import引入, 直接使用this.$axios即可

 // 这里引入context是上下文参数,代替了this,
// 因为在asyncData方法是在组件初始化时调用,所以没法通过this来引用组件实例对象。
asyncData(context) {
return context.$axios.get('ajax/cities')
.then(res => {
console.log(res)
})
}

nuxtjs中使用axios的更多相关文章

  1. nuxtJs中直接使用自带的@nuxtjs/axios

    最初我以为在nuxtjs中是需要重新npm install axios,但是其实nuxtjs自己集成了这个数据渲染方法 你只需在nuxt.config.js中配置一下就可以了 modules: [ / ...

  2. NuxtJS如何利用axios异步请求

    第一种:使用nuxt 提供的 Axios插件 @nuxtjs/axios 1.安装:npm install @nuxtjs/axios -d 2.配置 nuxt.config.js exports d ...

  3. vue脚手架中使用axios

    虽然之前用过n次,但大多都是直接在页面中引入axios.js的.今天想换种方式使用,一时间竟不知道怎么配置了.特此记录下. 1.npm 安装axios,文件根目录下安装,指令如下:  npm inst ...

  4. vue中使用axios最详细教程

    前提条件:vue-cli 项目 安装: npm npm 在main.js导入: // 引入axios,并加到原型链中 import axios from 'axios'; Vue.prototype. ...

  5. nuxtjs中使用路由守卫

    在vue中的路由守卫一般是来验证token失效什么的,当然也可以设置权限啦,在nuxtjs中如何使用路由守卫呢,话不多说,直接上代码 在plugins目录下简历route.js export defa ...

  6. nuxtjs中修改head及vuex的使用

    1.在之前vue项目中,我们如果需要改变每个页面的title,是需要在路由里配置meta然后通过路由守卫将每个页面的title替换掉,但是在nuxtjs中他提供了一个方法,直接在每个.vue的文件中使 ...

  7. vue中对axios进行封装

    在刚结束的项目中对axios进行了实践(好不容易碰上一个不是jsonp的项目), 以下为在项目中对axios的封装,仅封装了post方法,因为项目中只用到了post,如有需要请自行进行修改 src/c ...

  8. vue中的axios

    数据的获取最常用的就是用ajax,但在vue框架中,axios则更为方便.它是基于es6的promise 以下内容引用自[最骚的就是你] 不再继续维护vue-resource,并推荐大家使用 axio ...

  9. 在使用Vue.js中使用axios库时,遇到415错误(不支持的媒体类型(Unsupported media type))

    知识点:vue2.0中使用axios进行(put,post请求时),遇到415错误 解决办法:在axios的第三个参数config中,设置请求头信息'Content-Type': 'applicati ...

随机推荐

  1. Kafka基本架构及原理

    本文转载自http://www.cnblogs.com/cyfonly/p/5954614.html  一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的 ...

  2. featureCounts 软件说明

    featuresCounts 软件用于定量,不仅可以支持gene的定量,也支持exon, gene bodies, genomic bins, chromsomal locations的定量: 官网 ...

  3. js 对象转&拼接

    function pars(param, key, encode) { if (param == null) return ''; var arr = []; var t = typeof (para ...

  4. mysql like 查不到结果 中文 查询优化

    [参考]mysql like %keyword%不走索引替代方法 在使用msyql进行模糊查询的时候,很自然的会用到like语句,通常情况下,在数据量小的时候,不容易看出查询的效率,但在数据量达到百万 ...

  5. Logstash安装和使用

    Logstash 是开源的服务器端数据处理管道,能够同时 从多个来源采集数据.转换数据,然后将数据发送到您最喜欢的 “存储库” 中.(我们的存储库当然是 Elasticsearch.) 作用:集中.转 ...

  6. bootstrap 列表組

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. spring JdbcTemplate数据库

    DAO package DAO; import org.springframework.jdbc.core.JdbcTemplate; public class OrderDao { private ...

  8. C# 移除Response Header,403调整返回为404Make IIS return a 404 status code instead of 403

    Server Information Revealed For the benefit of those who land here through a google/bing search:: He ...

  9. RxAndroid防止内存泄露

    RxJava并不会自动防止这种情况发生,好在它可以很容易地防止内存泄露.Observable.subscribe()方法会返回一个Subscription对象,这个对象仅仅有两个方法:isSbscri ...

  10. ganglia-gmond.conf配置文件

    运行下列命令可以生成gmond默认配置文件: User@host:$ gmond -t 配置文件由大括弧括起来的几个section组成.这些section可以粗略划分为两个逻辑分类.第一类中的sect ...