Enrutamiento e importación de páginas

Importar páginas federadas en Next.js obliga a trabajar dentro de las limitaciones de cómo hace build Next.

Importar páginas remotas

Next depende del análisis estático para determinar cómo hacer build o renderizar una página.

Como Module Federation funciona en runtime, Next no puede ver en tiempo de build qué exports contiene una página remota.

Esto te obliga a reexportar dentro del host la API de página y el ciclo de vida de datos de la página del remote.

App remote de ejemplo

remote/pages/index.js
remote/pages/other.js
remote/pages/_app.js
import React from 'react';
import Head from 'next/head';

const Shop = (props) => {
  return (
    <div>
      <Head>
        <title>Shop</title>
      </Head>
      <pre>{JSON.stringify(props)}</pre>
    </div>
  );
};
Shop.getInitialProps = async () => {
  const fallback = {
    name: 'Luke Skywalker',
    height: '172',
    mass: '77',
    hair_color: 'blond'
  };
  return Promise.resolve(fallback);
};

export default Shop;

App host de ejemplo

host/pages/index.js
host/pages/other.js
host/pages/_app.js
import Shop from 'remote/pages/index';
const Page = Shop;
Page.getInitialProps = Shop.getInitialProps;
export default Page;