nuxt中间件ajax请求获取数据,7.【nuxt起步】-Nuxt与后端数据交互

本文介绍了在Nuxt.js项目中如何通过axios获取服务端接口数据,展示了配置过程和测试步骤。同时,讨论了Nuxt.js的SEO特性,解释了为何在Chrome的Network面板中看不到请求的原因,并提供了数据渲染的解决方案,确保了SEO友好性。
摘要由CSDN通过智能技术生成

接下来就是对接服务端接口,展示真实的数据

输出数据:

48304ba5e6f9fe08f3fa1abda7d326ab.png

{

"title": "单间出租",

"price": "350.0元/月",

"type": "1室1厅1卫",

"square": "2",

"keyWord": [{"word": "床"}, {"word": "可做饭"}, {"word": "独立卫生间"}],

"danjia": "17",

"xiaoqu": "王店镇宝华村",

"floor": "低层/1层",

"fwtype": "普通住宅",

"toward": "不限朝向",

"decor": "普通装修",

"deposit": "押1付1",

"linkman": "王先生",

"area": "秀洲区商业区",

"fid": "70823",

"address": "王店镇宝华村",

"desc": "交通便利可以仃车院子大",

"headimg": "https://www.vyuan8.com/vyuan/source/plugin/vyuan_fangchan/static/images/avatar.png",

"faburen": "王先生"

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

2.Nuxt 请求接口 需要用到axios  ,可以先搜索引擎练习下axios

cnpm install @nuxtjs/axios --save

3.plugins目录新建axios.js

编码:

48304ba5e6f9fe08f3fa1abda7d326ab.png

import * as axios from 'axios'

let options ={}

//需要全路径才能工作

if(process.server){

options.baseURL=`http://${process.env.HOST || 'localhost'}:${process.env.PORT || 3000}/api`

}

export default axios.create(options)

48304ba5e6f9fe08f3fa1abda7d326ab.png

4.Nuxt.config.js增加axios配置

modules:[

'@nuxtjs/axios'

],

5.先来个测试:

2e6c102bb74d0993d842c65183e3dfb5.png

输出:

63c4bee58027f42efa6dfd477429a668.png

Network没有结果,但consloe有输出了

e3bcf6b4dbb07620024fa45af9e2f717.png

因为axios是异步的,稍微改造下

48304ba5e6f9fe08f3fa1abda7d326ab.png

async asyncData({

app

}){

let res =await axios({

headers: { 'Content-Type': 'application/x-www-form-urlencoded' },

method: 'get',

url: `http://test.yms.cn/testjson.asp`,

data: ''

})

console.log(res)

},

48304ba5e6f9fe08f3fa1abda7d326ab.png

这时候console打印出结果了,但是 chrome中的network没有找到请求了,这是什么原因呢,其实这就是nuxt的特点,如果它出现在network,其实就是ajax异步请求了,那么seo不支持ajax,其实nuxt就是异步把网络请求了然后再render出来,性能上肯定有稍微的消耗,但基本差别不大,小的应用可以忽略,改造下:

48304ba5e6f9fe08f3fa1abda7d326ab.png

async asyncData({

app

}){

let res =await axios({

headers: { 'Content-Type': 'application/x-www-form-urlencoded' },

method: 'get',

url: `http://test.yms.cn/testjson.asp`,

data: ''

})

console.log(res.data.title)

return{

testData:res.data.title

}

},

48304ba5e6f9fe08f3fa1abda7d326ab.png

刷新:

1773ea446296cdfc9aaa54ce1769630d.png

输出正确

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值