我想把分类数据设为asyncData().但MainHeader页组件永远不会调用asyncData,即使它被放置在页面中.你能解释一下为什么MainHeader页组件不调用asyncData吗?

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

<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>

违约

<template>
<div>
  <main-header/>
  <Nuxt/>
</div>
</template>

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

推荐答案

你可能会直接到达你的页面,比如/com/test-page,我猜,在那里你会在服务器上得到第一个初始结果(你可以判断,你会在那里得到console.log),这是合法的,因为这就是Nuxt的工作方式(先是服务器端,然后是客户端).

请遵循将页面命名为my-cool-page而不是myCoolPage的惯例,同时请记住asyncData只适用于inside of pages.

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

<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>

Javascript相关问答推荐

使用续集和下拉栏显示模型属性

被CSS优先级所迷惑

JQuery. show()工作,但. hide()不工作

在vercel throws上部署带有gunjs的sveltekit应用无法找到模块./' lib/文本编码'

优化Google Sheet脚本以将下拉菜单和公式添加到多行

如何在ASP.NET JavaScript中使用Google Charts API仅对绘制为负方向的条形图移动堆叠条形图标签位置

使用领域Web SDK的Vite+Vue应用程序中的Web程序集(WASM)错误

环境值在.js文件/Next.js中不起作用

无法避免UV:flat的插值:非法使用保留字"

与svg相反;S getPointAtLength(D)-我想要getLengthAtPoint(x,y)

为什么延迟在我的laravel项目中不起作用?

在GraphQL解析器中修改上下文值

MongoDB通过数字或字符串过滤列表

通过解构/功能组件接收props-prop验证中缺少错误"

将字体样式应用于material -UI条形图图例

使用jQuery每隔几秒钟突出显示列表中的不同单词

如何在preLoad()中自定义p5.js默认加载动画?

Select 所有输入.值

如何在Flat Pickr中更改取消选中日期的 colored颜色

更改输入文本框的背景时出现问题