@stackflow/plugin-preload
TypeScript icon, indicating that this package has built-in type declarations

1.3.0 • Public • Published

@stackflow/plugin-preload

Preload required remote data by activity name.

Usage

/**
 * stackflow.ts
 */
import { stackflow } from "@stackflow/react";
import { preloadPlugin } from "@stackflow/plugin-preload";
import { MyHome } from "./MyHome";
import { MyArticle } from "./MyArticle";
import { NotFoundPage } from "./NotFoundPage";

const { Stack, useFlow, activities } = stackflow({
  activities: {
    MyHome,
    MyArticle,
    NotFoundPage,
  },
  plugins: [
    // ...
    preloadPlugin({
      loaders: {
        MyHome({ activityParams }) {
          // implement your own preload function using activity information
          // when activity pushed, loader is automatically triggered before rendering
        },
        MyArticle() {
          // ...
        },
        NotFoundPage() {
          // ...
        },
      },
    }),
  ],
});

export type TypeActivities = typeof activities;
/**
 * usePreloader.ts
 */
import { createPreloader } from "@stackflow/plugin-preload";
import type { TypeActivities } from "./stackflow";

export const { usePreloader } = createPreloader<TypeActivities>();
/**
 * MyComponent.tsx
 */
import { usePreloader } from "./usePreloader";

const MyComponent = () => {
  const { preload } = usePreloader();

  useEffect(() => {
    // imperatively preload
    preload("MyArticle", {
      /* ... */
    });
  }, []);

  return <div>{/* ... */}</div>;
};

Readme

Keywords

none

Package Sidebar

Install

npm i @stackflow/plugin-preload

Weekly Downloads

115

Version

1.3.0

License

MIT

Unpacked Size

38.5 kB

Total Files

20

Last publish

Collaborators

  • orionmiz
  • irrationnelle
  • tonyfromundefined