ノードヘルプ

toastify npm(開発者向けの仕組み)

イントロダクション

現代のウェブ開発において、ユーザーに迅速なフィードバックを提供することは、シームレスなユーザーエクスペリエンスにとって重要です。 トースト通知は、ユーザーの作業の流れを妨げることなくメッセージを届ける効果的な方法です。 React-toastify パッケージは、そのシンプルさと柔軟性から、React アプリケーションでトースト通知を実装するための人気のある選択肢です。 また、PDFドキュメントを生成、編集、管理するためのIronPDF NPMパッケージについても調べます。 この記事では、React-toastifyIronPDFをあなたのReactプロジェクトに統合するプロセスを案内します。

Toastifyとは何ですか?

React-toastify は、Reactアプリケーションにカスタマイズ可能なトースト通知を最小限の設定で追加できるNPMパッケージです。異なる通知タイプ、自動閉鎖機能、カスタムスタイル、残り時間の表示など、様々な機能を提供します。

toastify npm(開発者向けの使用法):図 1 - React-Toastifyパッケージを使用したスタイルとカスタマイズが異なるトースト通知。

インストール

react-toastifyの使用を始めるには、NPMまたはYarnを介してパッケージをインストールする必要があります。 プロジェクトのルートディレクトリで次のコマンドを実行します:

npm install react-toastify
npm install react-toastify
SHELL

または

yarn add react-toastify
yarn add react-toastify
SHELL

基本的な使用法

パッケージをインストールした後、Reactアプリケーションでreact-toastifyを使用し始めることができます。 以下は、react-toastifyを統合して使用する方法を示す簡単なコード例です。

1. Toastifyコンポーネントをインポートする

まず、react-toastifyから必要なコンポーネントをインポートします。

import React from 'react';
import { ToastContainer, toast } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';
js
JAVASCRIPT

2. Toastify を設定する

次に、ToastContainerコンポーネントをアプリケーションに追加してください。

function App() {
  return (
    <div>  // react component rendered inside
      <ToastContainer />
    </div>
  );
}
js
JAVASCRIPT

3. トースト通知をトリガーする

トースト関数を使用してトースト通知をトリガーできます。 成功メッセージを表示するコードサンプルは以下の通りです。

function notify() {
  toast.success("Success! This is a success message.", {
    position: toast.POSITION.TOP_RIGHT
  });
}
function App() {
  return (
    <div>
      <button onClick={notify}>Show Toast</button>
      <ToastContainer /> // react component inside
    </div>
  );
}
js
JAVASCRIPT

高度な機能

OnOpenOnClose フック

React-toastify は、onOpenonClose フックを使用してトーストの動作と外観をカスタマイズできるさまざまな高度な機能を提供します。

import React from 'react';
import { ToastContainer, toast } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';
function App() {
  const notify = () => {
    toast("Hello there", {
      onOpen: () => window.alert('Called when I open'),
      onClose: () => window.alert('Called when I close')
    });
  };
  return (
    <div>
      <button onClick={notify}>Notify</button>
      <ToastContainer />
    </div>
  );
}
export default App;
js
JAVASCRIPT

この例では:

  • トーストが開くと、onOpen フックがトリガーされ、アラートが表示されます。
  • トーストが閉じると、onClose フックがトリガーされ、別のアラートが表示されます。

カスタム位置

位置オプションを使用して、画面上の異なる位置にトーストを表示できます。

toast.info("Information message", {
  position:"top-right"
});
js
JAVASCRIPT

自動クローズ時間

トーストが表示される時間をautoCloseオプションを使用して設定できます。

toast.warn("Warning message", {
  autoClose: 5000 // Auto close after 5 seconds
});
js
JAVASCRIPT

カスタムスタイリング

classNameおよびスタイルオプションを使用して、トーストにカスタムスタイリングを適用できます。

toast.error("Error message", {
  className: 'custom-toast',
  style: { background: 'red', color: 'white' }
});
js
JAVASCRIPT

トーストを解消する

トーストは、toast.dismissメソッドを使用してプログラム的に消すことができます。

const toastId = toast("This toast can be dismissed");
function dismissToast() {
  toast.dismiss(toastId);
}
js
JAVASCRIPT

以下は、さまざまなreact-toastifyの機能を使用した完全な例です:

import React from 'react';
import { ToastContainer, toast } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';
function App() {
  const notify = () => {
    toast.success("Success! This is a success message.", {
      position:"top-right"  // success notification
    });
    toast.info("Information message", {
      position:"bottom-left"  // info will be displayed with progress bar
    });
    toast.warn("Warning message", {
      autoClose: 5000 // close or pause toast messages
    });
    toast.error("Error message", {
      className: 'custom-toast',
      style: { background: 'red', color: 'white' }
    });
  };
  return (
    <div>
      <button onClick={notify}>Show Toasts</button>
      <ToastContainer />
    </div>
  );
}
export default App;
js
JAVASCRIPT

出力

toastify npm (開発者向けの仕組み): 図2 - React-Toastifyアプリケーションがlocalhostポート:3000で実行されており、成功、警告、エラーメッセージのトースト通知を表示しています。

IronPDFの紹介

IronPDFは、開発者が.NETプロジェクト内でPDFを生成および編集できる強力なC# PDFライブラリです。 HTMLからPDFを作成する必要がある場合でも、既存のPDFを操作する場合でも、またはウェブページをPDF形式に変換する場合でも、IronPDFにお任せください。

toastify npm(開発者向けの動作方法):図3 - IronPDF for Node.js: Node.js PDFライブラリ

ここでは、いくつかの主要な機能と使用例を紹介します:

1.HTMLからPDFへの変換

IronPDFは、URL、HTMLファイル、またはHTML文字列からのHTMLページをPDFに変換できます。 ローカルのHTMLファイルやHTML文字列をPDFに変換することもできます。

2. クロスプラットフォームのサポート

IronPDFは、様々なプラットフォームでシームレスに動作します。次のように:

  • .NET Core(8、7、6、5、および3.1+)。
  • .NET Standard (2.0+)
  • .NET Framework (4.6.2+)
  • ウェブ(Blazor & WebForms)
  • デスクトップ(WPFおよびMAUI)
  • コンソール(アプリとライブラリ)
  • Windows、Linux、macOS環境。

3. PDFの編集と操作

IronPDFを使用すると、次のことができます:

4. カスタマイズとフォーマット

ページテンプレート、ヘッダー、フッター、ページ番号、カスタムマージンを適用できます。 IronPDFは、UTF-8文字エンコーディング、ベースURL、アセットエンコーディングなどをサポートしています。

5. 標準への準拠

IronPDFは、PDFのバージョン(1.2 - 1.7)、PDF/UA(PDF/UA-1)、およびPDF/A(PDF/A-3b)を含む様々なPDF標準に準拠しています。

IronPDFとToastify NPMパッケージを使用してPDFドキュメントを生成する

依存関係のインストール: まず、以下のコマンドを使用して新しいNext.jsプロジェクトを作成します(まだ作成していない場合)。セットアップページを参照してください。

npx create-next-app@latest my-pdf-app --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"
npx create-next-app@latest my-pdf-app --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"
SHELL

次に、プロジェクト・ディレクトリに移動する:

cd my-pdf-app
cd my-pdf-app
SHELL

必要なパッケージをインストールする:

npm install @ironsoftware/ironpdf
npm install react-toastify
npm install @ironsoftware/ironpdf
npm install react-toastify
SHELL

PDFを作成する: さて、IronPDFを使用してPDFを生成する簡単な例を作成してみましょう。 Next.jsコンポーネント(例:pages/index.tsx)に次のコードを追加します:

import Head from 'next/head';
import styles from '../styles/Home.module.css';
import {ToastContainer, toast} from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';
import {useState} from "react";
export default function Home() {
    const [textInput, setTextInput] = useState('');
    const notify = () => {
        toast.success("Success! This is a success message.", {
            position: "top-right"
        });
        toast.info("Information message", {
            position: "bottom-left"
        });
        toast.warn("Warning message", {
            autoClose: 5000
        });
        toast.error("Error message", {
            className: 'custom-toast',
            style: {background: 'red', color: 'white'}
        });
    };
    const generatePdf = async () => {
        try {
            const response = await fetch('/api/pdf?url='+textInput);
            const blob = await response.blob();
            const url = window.URL.createObjectURL(new Blob([blob]));
            const link = document.createElement('a');
            link.href = url;
            link.setAttribute('download', 'example.pdf');
            document.body.appendChild(link);
            link.click();
            link.parentNode.removeChild(link);
        } catch (error) {
            console.error('Error generating PDF:', error);
        }
    };
    const handleChange = (event) => {
        setTextInput(event.target.value);
    }
    return (
        <div className={styles.container}>
            <Head>
                <title>Demo Toaster and Generate PDF From IronPDF</title>
                <link rel="icon" href="/favicon.ico"/>
            </Head>
            <main>
                <h1>Demo Toaster and Generate PDF From IronPDF</h1>
                <button style={{margin:20, padding:5}} onClick={notify}>Show Toasts</button>
                <p>
                    <span>Enter Url To Convert to PDF:</span>{" "}
                </p>
                <button style={{margin:20, padding:5}} onClick={generatePdf}>Generate PDF</button>
                <ToastContainer/>
            </main>          
            <style jsx>{`
                main {
                    padding: 5rem 0;
                    flex: 1;
                    display: flex;
                    flex-direction: column;
                    justify-content: center;
                    align-items: center;
                }
                footer {
                    width: 100%;
                    height: 100px;
                    border-top: 1px solid #eaeaea;
                    display: flex;
                    justify-content: center;
                    align-items: center;
                }
                footer img {
                    margin-left: 0.5rem;
                }
                footer a {
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    text-decoration: none;
                    color: inherit;
                }
                code {
                    background: #fafafa;
                    border-radius: 5px;
                    padding: 0.75rem;
                    font-size: 1.1rem;
                    font-family: Menlo,
                    Monaco,
                    Lucida Console,
                    Liberation Mono,
                    DejaVu Sans Mono,
                    Bitstream Vera Sans Mono,
                    Courier New,
                    monospace;
                }
            `}</style>
            <style jsx global>{`
                html,
                body {
                    padding: 0;
                    margin: 0;
                    font-family: -apple-system,
                    BlinkMacSystemFont,
                    Segoe UI,
                    Roboto,
                    Oxygen,
                    Ubuntu,
                    Cantarell,
                    Fira Sans,
                    Droid Sans,
                    Helvetica Neue,
                    sans-serif;
                }
                * {
                    box-sizing: border-box;
                }
            `}</style>
        </div>
    );
}
js
JAVASCRIPT

IronPDFはNode.jsでのみ動作するため、次にNode.jsを使用してPDFを生成するアプリのAPIを追加します。

pages/apiフォルダーにpdf.jsファイルを作成し、以下のコードを追加します。

// pages/api/pdf.js
import {IronPdfGlobalConfig, PdfDocument} from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
export default async function handler(req, res) {
    try {
        const url = req.query.url
        const pdf = await PdfDocument.fromUrl(url);
        const data = await pdf.saveAsBuffer();
        console.error('data PDF:', data);
        res.setHeader('Content-Type', 'application/pdf');
        res.setHeader('Content-Disposition', 'attachment; filename=awesomeIron.pdf');
        res.send(data);
    } catch (error) {
        console.error('Error generating PDF:', error);
        res.status(500).end();
    }
}
js
JAVASCRIPT

注: 上記のコードにあなた自身のライセンスキーを追加してください。

アプリを実行する: Next.jsアプリを開始します。

npm run dev
or
yarn dev
npm run dev
or
yarn dev
SHELL

出力

ブラウザを開き、http://localhost:3000 に移動して以下のウェブサイトを確認してください。

toastify npm(開発者向けの動作方法):図4 - localhostポート:3000で動作するReact-Toastifyアプリケーションが、"Show Toasts"というボタンと、"Enter URL To Convert to PDF"のテキストフィールド、"Generate PDF"ボタンを表示しています。

「Show Toasts」ボタンをクリックして、トーストメッセージを表示します。

![toastify npm(開発者への利用方法): 図5 - Show Toastsボタンをクリックすると、アプリケーションはSuccess、Warning、およびErrorメッセージのトースト通知を表示します。 さらに、テキストフィールドを使用してPDFドキュメントに変換したいウェブページのURLを入力し、「PDFを生成」ボタンをクリックすることができます。 これは、指定されたウェブページをIronPDFを使用してPDFに変換します。

ウェブサイトのURLを入力してPDFを生成し、「PDFを生成」をクリックしてください。 以下のように、awesomeIron.pdfという名前のファイルがダウンロードされます。

toastify npm(開発者向けの使い方):図6 - 指定されたURLをIronPDFを使用してPDFに変換して生成された出力PDF

IronPDFライセンス

IronPDF ページ。

以下に示すようにアプリにライセンスキーを配置してください。

import {IronPdfGlobalConfig, PdfDocument} from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
js
JAVASCRIPT

結論

React-toastify は、Reactアプリケーションにトースト通知を追加するための強力で使いやすいライブラリです。 その幅広い機能とカスタマイズオプションにより、リアルタイムフィードバックを非常に簡単かつ非侵入的な方法で提供することで、ユーザーエクスペリエンスを向上させることができます。 一方、IronPDFは、PDFドキュメントの生成、編集、管理をサポートする、最も多用途なエンタープライズライブラリです。 この記事で説明されている手順に従うことで、React-toastifyIronPDFを迅速にプロジェクトに統合し、その機能を活用し始めることができます。

IronPDFの開始に関する詳細情報は、ドキュメントページとコード例を参照してください。

Darrius Serrant
フルスタックソフトウェアエンジニア(WebOps)

Darrius Serrantは、マイアミ大学でコンピュータサイエンスの学士号を取得しており、Iron SoftwareでフルスタックWebOpsマーケティングエンジニアとして働いています。若い頃からコーディングに魅了され、コンピューティングを神秘的でありながらアクセスしやすいものと見なし、それが創造性と問題解決のための完璧な媒体であると感じました。

Iron Softwareでは、新しいものを作り出し、複雑な概念を簡単にすることでより理解しやすくすることを楽しんでいます。彼は常駐の開発者の一人として、学生に教えることを志願し、自分の専門知識を次世代と共有しています。

Darriusにとって、彼の仕事は評価され、実際に影響があることで充実しています。

< 以前
npmを複製する(開発者向けの動作方法)
次へ >
Socket io node.js(開発者向けの仕組み)