在 asyncData Nuxt.js 中传递数据

Rbe*_*bex 3 nuxt.js

我是 nuxt.js 的新手,我想问一下是否有任何方法可以在 asyncData 中传递数据。这是代码。

    <script type="text/javascript">
  import axios from 'axios'
  export default {
    data(){
        return {
          sample: 'asdf',
          baseUrl: 'https://jsonplaceholder.typicode.com/posts/1'
        }
    },
    async asyncData ({ params }) {
      let { data } = await axios.get(this.baseUrl)
      return { title: data}
    }
}
</script>
Run Code Online (Sandbox Code Playgroud)

我知道您无权访问,this但有没有办法传递数据。谢谢。

Ald*_*und 5

通常这种配置,比如在nuxt中的env vars中定义的baseurl。文档

  // nuxt.config.js
  env: {
    baseUrl: process.env.BASE_URL || 'http://localhost:3000'
  }
Run Code Online (Sandbox Code Playgroud)

然后你可以通过 process.env 在任何地方访问它,例如在 asyncData 中

async asyncData ({ params }) {
  let { data } = await axios.get(process.env.baseUrl)
  return { title: data}
}
Run Code Online (Sandbox Code Playgroud)

但是对于 axios 的 baseUrl,您可以只定义一次,例如在 plugins/axios 中,然后从那里导入

import axios from 'axios'

export default axios.create({
  baseURL: process.env.baseUrl
})
Run Code Online (Sandbox Code Playgroud)

或者您可以使用@nuxt/axios 模块,您可以在其中将baseUrl设置为配置选项