zoukankan      html  css  js  c++  java
  • 7.【nuxt起步】-Nuxt与后端数据交互

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

    1.做了个虚拟接口地址:http://test.yms.cn/testjson.asp

    输出数据:

    复制代码

    {

      "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": "王先生"

    }

    复制代码

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

    cnpm install @nuxtjs/axios --save

    3.plugins目录新建axios.js

    编码:

    复制代码

    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)

    复制代码

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

    modules:[

      '@nuxtjs/axios'

    ],

    5.先来个测试:

     

    输出:

     

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

     

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

    复制代码

    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)

    },

    复制代码

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

    复制代码

    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

      }

    },

    复制代码

    刷新:

     

    输出正确

  • 相关阅读:
    复制文字时自动加版权
    Linux安装Docker
    ThreadLocal 理解
    Spring多数据源动态切换
    [LOJ#500]「LibreOJ β Round」ZQC的拼图
    [JLOI2015]装备购买
    「雅礼集训 2017 Day4」洗衣服
    [BJWC2011]元素
    [51nod1577]异或凑数
    [ARC101B]Median of Medians
  • 原文地址:https://www.cnblogs.com/sexintercourse/p/13084865.html
Copyright © 2011-2022 走看看