Nuxt之asyncData方法获取数据

在项目中须要在初始化页面前先获得数据,也就是咱们常说的异步请求数据。Nuxt.js贴心的为咱们扩展了Vue.js的方法,增长了anyncData方法。从名字上就很好理解,这是一个异步的方法。

一. 建立远程数据

在这里制做一些假的远程数据,我选择的网站是myjson.com,它是一个json的简单仓库,学习使用是很是适合的。 咱们打开网站,在对话空中输入JSON代码,这个代码能够本身随意输入哦。
html

{
  "name": "laowang",
  "age": 18,
  "interest": "I love coding"
}
复制代码

输入后,网站会给你一个地址,这就是你这个JSON仓库的地址了。
vue

https://api.myjson.com/bins/mr6ma

二. 安装Axios

npm i axios --save复制代码

三. ansycData的promise方法ios

在pages下新建文件asyncData.vuenpm

<template>
  <div>
    <h1>姓名:{{info.name}}</h1>
    <h1>年龄:{{info.age}}</h1>
    <h1>兴趣:{{info.interest}}</h1>
    {{name}}
  </div>
</template>
<script>
import axios from 'axios'
export default {
  data() {
    return {
      name: 'Hello World'
    }
  },
  asyncData() {
    return axios.get('https://api.myjson.com/bins/mr6ma')
                .then((res) => {
                   return {info: res.data}
                })
  }
}
</script>
复制代码

这时候咱们能够看到,浏览器中已经能输出结果了。
json

四. ansycData的await方法axios

固然上面的方法稍显过期,如今都在用ansyc…await来解决异步,改写上面的代码。
api

<template>
  <div>
    <h1>姓名:{{info.name}}</h1>
    <h1>年龄:{{info.age}}</h1>
    <h1>兴趣:{{info.interest}}</h1>
    {{name}}
  </div>
</template>
<script>
import axios from 'axios'
export default {
  data() {
    return {
      name: 'Hello World'
    }
  },
  async asyncData() {
    let { data } = await axios.get('https://api.myjson.com/bins/mr6ma')
    return { info: data }
  }
}
</script>复制代码


本文引用于技术胖nuxt教程,感谢胖哥
promise

相关文章
相关标签/搜索