首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在nuxt中没有调用AsyncData

在nuxt中没有调用AsyncData
EN

Stack Overflow用户
提问于 2022-05-09 05:55:00
回答 1查看 340关注 0票数 2

我想在asyncData()钩子上设置类别数据。但是,MainHeader页面组件即使放在页面中也不会调用asyncData。您能解释为什么MainHeader页面组件不调用asyncData

MainHeader放在"com“文件夹中,该文件夹放在页面上(/pages/com/MainHeader)

代码语言:javascript
复制
<template>
  <div>
    <header-nav :cateList="cateList"/>
  </div>
</template>

<script>
import HeaderNav from '~/components/com/nav/HeaderNav.vue';
import CateApi from "~/util/api/category/cate-api";

export default {
  components: {HeaderNav},

  async asyncData(){
    const cateList = await CateApi.getDispCateList();
    return{
      cateList,
    }
  },

  data() {
    return {
      cateList: [],
    }
  },
}
</script>

默认(/layouts/default)

代码语言:javascript
复制
<template>
<div>
  <main-header/>
  <Nuxt/>
</div>
</template>

<script>
import MainHeader from "~/pages/com/MainHeader.vue"
export default {
  components :{
    MainHeader,
  },
  name: "defaultLayout"
}
</script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-09 09:12:50

您可能直接到达您的页面,比如/com/test-page,在那里您将在服务器上获得第一个初始结果(您可以检查,您将在那里得到一个console.log ),这是合法的,因为这就是Nuxt的工作方式(服务器端首先是客户端)。

请遵循将页面命名为my-cool-page而不是myCoolPage的惯例,同时也要记住,asyncData只工作于页内

您的项目运行良好,例如,创建以下文件/pages/com/main-header.vue

代码语言:javascript
复制
<template>
  <div>
    <p> main header page</p>
    <header-nav :cate-list="cateList" />
  </div>
</template>

<script>
import HeaderNav from '~/components/com/nav/HeaderNav.vue';

export default {
  components: { HeaderNav },

  async asyncData() {
    console.log("check your server if accessing this page directly, otherwise you'll see this one in your browser if client-side navigation")
    const response = await fetch('https://jsonplaceholder.typicode.com/todos')
    const cateList = await response.json()

    return { cateList }
  },
}
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72167502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档