Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Die Zustandsverwaltung ist ein entscheidender Aspekt bei der Entwicklung robuster und skalierbarer React-Anwendungen. Unter verschiedenen staatlichen Verwaltungsbibliotheken,Rückspulen hat sich als leistungsfähige und flexible Option erwiesen. Recoil wurde von Facebook als experimentelles Framework für die Zustandsverwaltung entwickelt und vereinfacht komplexe Zustandsverwaltungsszenarien und bietet eine intuitivere API für die Verwaltung globaler Zustände in React-Anwendungen.
Dieser Artikel untersucht die Kernkonzepte von Recoil, seine Vorteile und wie man damit in einem React-Projekt anfängt. Außerdem werden wir uns mit demIronPDF for Node.js PDF Generation Tools bibliothek zur Erzeugung von PDFs aus Website-URLs oder HTML.
Recoil ist eine Zustandsverwaltungsbibliothek für React, die darauf abzielt, die Grenzen bestehender Lösungen wie Redux und Context API zu überwinden. Es bietet einen einfacheren und performanteren Weg, um gemeinsame Zustände in React-Anwendungen zu verwalten. Es bietet Funktionen wie feinkörnige Updates, asynchrones Zustandsmanagement und eine einfache Integration mit dem Concurrent-Modus von React.
Recoil führt mehrere Schlüsselkonzepte ein, die es von anderen Bibliotheken zur Zustandsverwaltung unterscheiden:
Atome: Atome sind die grundlegenden Zustandseinheiten in Recoil. Sie stellen Teile des Zustands dar, die von den Komponenten gemeinsam genutzt werden können. Wenn sich der Wert eines Atoms ändert, wird jede Komponente, die dieses Atom abonniert hat, automatisch neu dargestellt.
Selektoren: Selektoren sind reine Funktionen, die ihren Zustand von einem oder mehreren Atomen oder anderen Selektoren ableiten. Sie können synchron oder asynchron sein und ermöglichen komplexe Zustandsableitungen und Datenabruflogik.
Recoil bietet mehrere Vorteile gegenüber anderen Lösungen zur Zustandsverwaltung:
Um Recoil in einer React-Anwendung zu verwenden, folgen Sie diesen Schritten:
Um die neueste stabile Version zu installieren, führen Sie den folgenden Befehl aus, da das Recoil-Paket in npm enthalten ist:
npm install recoil
Umhüllen Sie Ihre Anwendung mit der RecoilRoot-Komponente.
import React from 'react';
import ReactDOM from 'react-dom/client';
import { RecoilRoot } from 'recoil';
import App from './App';
const rootElement = document.getElementById('root');
const root = ReactDOM.createRoot(rootElement);
root.render(
<RecoilRoot>
<App />
</RecoilRoot>
);
Atome und Selektoren definieren:
import { atom, selector } from 'recoil';
export const textState = atom({
key: 'textState',
default: '',
});
export const charCountState = selector({
key: 'charCountState',
get: ({ get }) => {
const text = get(textState);
return text.length;
},
});
Verwendung von Atomen und Selektoren in Komponenten:
import React from 'react';
import { useRecoilState, useRecoilValue } from 'recoil';
import { textState, charCountState } from './state';
function CharacterCounter() {
const [text, setText] = useRecoilState(textState);
const count = useRecoilValue(charCountState);
const onChange = (event) => {
setText(event.target.value);
};
return (
<div>
<p>Character Count: {count}</p>
</div>
);
}
export default CharacterCounter;
IronPDF ist eine beliebte Bibliothek zur PDF-Erzeugung, die zum Erstellen, Bearbeiten und Konvertieren von PDF-Dokumenten verwendet wird. Das IronPDF npm-Paket wurde speziell für Node.js-Anwendungen entwickelt. Hier sind einige wichtige Funktionen und Details über das IronPDF npm-Paket:
Konvertieren Sie mühelos HTML-Inhalte in PDF-Dokumente. Diese Funktion ist besonders nützlich für die Erstellung dynamischer PDFs aus Webinhalten.
Generieren Sie PDFs direkt aus URLs, so dass Sie den Inhalt von Webseiten erfassen und programmgesteuert als PDF-Dateien speichern können.
Bestehende PDF-Dokumente lassen sich mühelos zusammenführen, aufteilen und manipulieren. IronPDF bietet Funktionen wie das Anhängen von Seiten, das Aufteilen von Dokumenten und vieles mehr.
Sichern Sie Ihre PDF-Dokumente, indem Sie sie mit Passwörtern verschlüsseln oder mit digitalen Signaturen versehen. IronPDF bietet Optionen zum Schutz Ihrer vertraulichen Dokumente vor unbefugtem Zugriff.
Erstellen Sie hochwertige PDF-Dokumente mit präzisem Rendering von Text, Bildern und Formatierungen. IronPDF stellt sicher, dass die von Ihnen generierten PDF-Dateien dem ursprünglichen Inhalt treu bleiben.
IronPDF ist mit verschiedenen Plattformen kompatibel, darunter Windows, Linux und macOS, und eignet sich daher für eine breite Palette von Entwicklungsumgebungen.
Integrieren Sie IronPDF einfach in Ihre Node.js-Anwendungen mit Hilfe des npm-Pakets. Die API ist gut dokumentiert, so dass es einfach ist, PDF-Generierungsfunktionen in Ihre Projekte einzubinden.
Um das NPM-Paket IronPDF zu installieren, verwenden Sie den folgenden Befehl:
yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
Abhängigkeiten installieren: Erstellen Sie zunächst ein neues Next.js-Projekt(falls Sie es noch nicht getan haben). Siehe hierzuNext.js-Einrichtungstutorial für detaillierte Anweisungen, oder verwenden Sie den folgenden Befehl:
npx create-next-app@latest recoil-pdf --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"
Navigieren Sie dann zu Ihrem Projektverzeichnis:
cd recoil-pdf
Installieren Sie die erforderlichen Pakete:
yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add recoil
Fügen Sie die Datei "app.js" hinzu, um Recoil wie folgt einzubinden:
import React from 'react';
import { RecoilRoot } from 'recoil';
export default function App({ Component, pageProps }) {
return (
<RecoilRoot>
<Component {...pageProps} />
</RecoilRoot>
);
}
PDF-Erzeugungs-API: Der erste Schritt besteht darin, eine Backend-API zu erstellen, um das PDF-Dokument zu generieren. Da IronPDF nur serverseitig läuft, müssen wir eine API erstellen, die aufgerufen wird, wenn Benutzer eine PDF-Datei erzeugen wollen. Erstellen Sie eine Datei im Pfad pages/api/pdf.js und fügen Sie den folgenden Code hinzu:
// pages/api/pdf.js
import {IronPdfGlobalConfig, PdfDocument} from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Your license key";
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();
}
}
IronPDF erfordert einen Lizenzschlüssel, den Sie auf der WebsiteIronPDF Testlizenzseite und fügen Sie ihn in den obigen Code ein.
Fügen Sie den folgenden Code ein, um eine URL vom Benutzer zu akzeptieren, eine PDF-Datei aus der URL zu generieren und sie in der Datei index.js zu speichern:
import Head from 'next/head';
import styles from '../styles/Home.module.css';
import React from 'react';
import {
atom,
useRecoilState,
} from 'recoil';
const textState = atom({
key: 'textState', // unique ID (with respect to other atoms/selectors)
default: '', // default value (aka initial value)
});
export default function Home() {
const [text, setText] = useRecoilState(textState);
const generatePdf = async () => {
try {
const response = await fetch('/api/pdf?url='+text);
const blob = await response.blob();
const url = window.URL.createObjectURL(new Blob([blob]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'awesomeIron.pdf');
document.body.appendChild(link);
link.click();
link.parentNode.removeChild(link);
} catch (error) {
console.error('Error generating PDF:', error);
}
};
const handleChange = (event) => {
setText(event.target.value);
}
return (
<div className={styles.container}>
<Head>
<title>Generate PDF Using IronPDF</title>
<link rel="icon" href="/favicon.ico"/>
</Head>
<main>
<h1>Demo Recoil NPM and Generate PDF Using IronPDF</h1>
<p>
<span>Enter Url To Convert to PDF:</span>{" "}
</p>
<button style={{margin:20, padding:5}} onClick={generatePdf}>Generate PDF</button>
</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>
);
}
Erstellen eines Atomzustands mit 'const textState = atom()' von Recoil, die verwendet wird, um die vom Benutzer in das Eingabefeld eingegebene URL zu speichern.
Fügen Sie die Komponenten Überschrift, Eingabe und Schaltfläche hinzu.
Starten Sie die Anwendung mit "yarn dev" und geben Sie dann die URL der Website ein, die als PDF generiert werden soll.
So sieht die Website aus:
Das PDF, das generiert wurde, als die URL '<https://ironpdf.com/nodejs/
>' angegeben wurde:
DieIronPDF Testlizenz ermöglicht es den Benutzern, die umfangreichen Funktionen vor dem Kauf zu testen. Weitere Einzelheiten zur unbefristeten Lizenzierung finden Sie auf der WebsiteIronPDF-Lizenzierungsinformationen seite.
Geben Sie hier den Lizenzschlüssel ein:
import {IronPdfGlobalConfig, PdfDocument} from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
Recoil bietet einen modernen und effizienten Ansatz für die Zustandsverwaltung in React-Anwendungen. Die feinkörnigen Updates, die Kompatibilität mit dem Concurrent-Modus und die einfache Handhabung asynchroner Zustände machen es zu einer überzeugenden Wahl für Entwickler, die skalierbare und performante React-Apps erstellen möchten.
Durch den Einsatz von Atomen und Selektoren ermöglicht Recoil eine modulare und intuitive Verwaltung des globalen Zustands und verbessert so die gesamte Entwicklungserfahrung. IronPDF for Node.js Library npm ist ein Unternehmenspaket mit PDF-Erzeugungs- und Lesefunktionen. Entwickler können diese Funktionen mit Hilfe der IronPDF-Bibliothek problemlos in ihre Anwendungen integrieren.
9 .NET API-Produkte für Ihre Bürodokumente