Next.js多页布局getLayout使用方法

目录

官网解释

直接上代码使用方法展示

1.page页面​编辑

2._app.js页面,也放在pages中​编辑

效果展示

有getLayout展示getLayout返回的页面布局

无getLayout展示默认布局


官网解释

如果需要多个布局,可以添加一个属性getLayout添加到您的页面,允许您为布局返回React组件。这允许您定义上的布局每页基础。因为我们返回的是一个函数,所以如果需要的话,我们可以使用复杂的嵌套布局。

直接上代码使用方法展示

1.page页面


export default function Home() {
    return (
      <div>
        <h1>Welcome to the Homepage</h1>
        <p>This is the main content of the homepage.</p>
      </div>
    );
  }
  
  Home.getLayout = function getLayout() {
    // 可以在这里自定义特定的布局结构
    return (
      <h1>Welcome to the getLayout</h1>
    );
  }
  
  

2._app.js页面,也放在pages中

// pages/_app.js

import Home from './app'; // 导入首页组件

function MyApp({ Component}) {
    const getLayout = Component.getLayout || (() => <Component />);

    return getLayout();
}

export default MyApp;

这样我们就已经搭建完成了,注意_app.js里面是固定写法,我们只需要在上面import我们的pages页面即可,这样他就可以去查看我们是否挂在了getLayout,若有就使用它,没有就用默认的
 

  • _app.js 中定义的全局布局逻辑将会影响整个应用程序中的页面渲染和布局结构。

效果展示

有getLayout展示getLayout返回的页面布局

export default function Home() {
    return (
      <div>
        <h1>Welcome to the Homepage</h1>
        <p>This is the main content of the homepage.</p>
      </div>
    );
  }
  
  Home.getLayout = function getLayout() {
    // 可以在这里自定义特定的布局结构
    return (
      <h1>Welcome to the getLayout</h1>
    );
  }

无getLayout展示默认布局


export default function Home() {
    return (
      <div>
        <h1>Welcome to the Homepage</h1>
        <p>This is the main content of the homepage.</p>
      </div>
    );
  }
  
  // Home.getLayout = function getLayout() {
  //   // 可以在这里自定义特定的布局结构
  //   return (
  //     <h1>Welcome to the getLayout</h1>
  //   );
  // }
  
  

  • 12
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhuyua

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值