Menus
How to fetch and render menus.
There are two ways to fetch and render menus with next-drupal:
`getMenu`: a helper to fetch menus in`getStaticProps`and`getServerSideProps`.`useMenu`: a client-side hook to fetch menus. Queries your Drupal site at runtime.
Use `useMenu` if you have menus that change frequently. Otherwise use `getMenu` which is faster (static) and does not
need to query your Drupal site at runtime.
⚠️
You need to install the JSON:API Menu Items module to use `useMenu` and `getMenu`.
getMenu Example
pages/[...slug].tsx
import Link from "next/link"import { getMenu } from "next-drupal"
// node and menu will be populated at build time by getStaticPropsexport default function Page({ node, menu }) {  return (    <>      <ul>        {menu?.map((item) => {          return (            <li key={item.id}>              <Link href={item.url} passHref>                <a>{item.title}</a>              </Link>            </li>          )        })}      </ul>      <article>        <h1>{node.title}</h1>        // ...      </article>    </>  )}
export async function getStaticPaths(context) {  return {    paths: await getPathsFromContext("node--page", context),    fallback: false,  }}
export async function getStaticProps() {  const node = await getResourceFromContext("node--page", context)
  // Fetch the main menu.  const { tree } = await getMenu("main") 
  return {    props: {      node,      menu: tree,     },  }}useMenu Example
pages/[...slug].tsx
import Link from "next/link"import { useMenu } from "next-drupal"
export default function Page({ node }) {  const { tree } = useMenu("main") 
  return (    <>      <ul>        {tree?.map((item) => {          return (            <li key={item.id}>              <Link href={item.url} passHref>                <a>{item.title}</a>              </Link>            </li>          )        })}      </ul>      <article>        <h1>{node.title}</h1>        // ...      </article>    </>  )}