Die Statischen Gewölbe des Codex schimmerten vor stiller Vorfreude. Diese Tresore waren die stillen Wächter des Wissens, ihre Wände waren mit Datenschriftrollen und leuchtenden Seiten gesäumt, die auf den Aufruf der Benutzer warteten. Heute stand Arin an der Schwelle dieser Tresore und hatte die Aufgabe, ein neues und wesentliches Handwerk zu beherrschen: die Erstellung statischer vorgerenderter Seiten, die Codex dabei helfen würden, seine Benutzer schneller als je zuvor zu bedienen.
„Arin“, Die Stimme von Captain Lifecycle hallte durch die gewölbte Kammer und lenkte ihre Aufmerksamkeit. „Heute lernen Sie, die Leistungsfähigkeit des statischen Renderings zu nutzen. Dabei geht es nicht nur um Wissen – es geht darum, Codex darauf vorzubereiten, die Bedürfnisse der Benutzer zu erfüllen, bevor sie überhaupt entstehen.“
Eine Herausforderung, die eines wahren Verteidigers würdig ist, dachte Arin und Entschlossenheit leuchtete in ihren Augen. Es war an der Zeit, ein System zu entwickeln, das es Codex ermöglichen würde, seine Seiten vorab zu rendern und bei Bedarf eine sofortige Reaktion sicherzustellen.
Captain Lifecycle ging neben Arin, als sie tiefer in die Gewölbe vordrang. Mit Daten beleuchtete Schriftrollen, die Skripte und Seiten offenbaren, die lange bevor ein Benutzer sie benötigte, gerendert wurden. „Um Codex vorzubereiten, müssen wir lernen, Wissen zu erfassen und auf diesen Seiten zu speichern“, sagte er.
Arins Aufgabe war klar: ein statisches Site-Generierungssystem (SSG) für den Blog von Codex zu erstellen, in dem die Geschichten und Lehren der Vergangenheit jederzeit abgerufen werden konnten.
Schritt 1: Die Werkzeuge zusammenstellen
Der erste Schritt bestand darin, Codex mit den Mitteln zum Lesen und Kompilieren seiner Schriftrollen auszustatten – MDX-Dateien.
npm install fs-extra react react-dom react-dom/server @mdx-js/react @mdx-js/mdx
Die Kammer summte leise, als Arin die Komponenten aktivierte. Jede Installation war wie eine Rune, die in die Infrastruktur des Tresors eingraviert war und sie auf die Interpretation und Wiedergabe der alten Texte vorbereitete.
Schritt 2: Schreiben der ersten MDX-Schriftrolle
Arin nahm eine Feder und begann mit dem Verfassen des ersten Blogs von Codex, einer Geschichte seiner Geschichte, verwoben mit interaktiven React-Komponenten.
// blogs/hello-world.mdx # Hello, World! Welcome to Codex’s first blog post. This content is rendered from an MDX file, combining the simplicity of Markdown with the power of React components.This is a special React component embedded within MDX!
Mit jedem Strich leuchtete die Seite, und ihr Inhalt bestand nun aus einer Mischung aus einfachem Text und komplexen Komponenten.
Schritt 3: Erstellen des Skripts zum Rendern der Schriftrollen
Arin erstellte einen Zauberspruch – ein Skript –, das die Schriftrollen liest, sie in React-Komponenten kompiliert und als statisches HTML rendert.
// generateStaticBlogs.js const fs = require('fs-extra'); const path = require('path'); const React = require('react'); const ReactDOMServer = require('react-dom/server'); const { MDXProvider } = require('@mdx-js/react'); const mdx = require('@mdx-js/mdx'); const outputPath = './static-blogs'; const blogPath = './blogs'; (async () => { try { // Ensure the output directory exists await fs.ensureDir(outputPath); const blogFiles = await fs.readdir(blogPath); for (const file of blogFiles) { if (path.extname(file) === '.mdx') { const filePath = path.join(blogPath, file); const content = await fs.readFile(filePath, 'utf8'); const compiledMdx = await mdx(content); const Component = new Function('React', compiledMdx)(React); // Render the component to a static HTML string const renderedBlog = ReactDOMServer.renderToString(); const htmlTemplate = ` ${path.basename(file, '.mdx')} Step 4: Running the Spell
Arin murmured the incantation to invoke the script.
node generateStaticBlogs.jsSie sah zu, wie die Static Vaults zum Leben erwachten und jedes Blog sanft leuchtete, während es sich in eine statische Seite verwandelte, die bereit war, den Benutzern bereitgestellt zu werden.
Arins Reflexion:
„Diese statischen Seiten sind mehr als nur Echos“, dachte sie und beobachtete, wie die Tresore vor Wissen schimmerten. „Sie sind die sofortige und unerschütterliche Dienstbereitschaft des Codex.“
2. Die Vor- und Nachteile der statischen Vorbereitung
Die Stimme von Captain Lifecycle schnitt durch die Luft. „Denken Sie daran, Arin, dass statische Seiten zwar mächtig sind, aber ihre eigenen Kompromisse mit sich bringen.“
Vorteile:
- Blitzschnelle Ladezeiten: Vorgerenderte Seiten werden sofort bereitgestellt, was den Benutzern die Illusion einer nahtlosen Geschwindigkeit vermittelt.
- SEO-Meisterschaft: Vollständig gerendertes HTML stellt sicher, dass die Geschichten von Codex gut indiziert sind und an Sichtbarkeit gewinnen.
- Entwicklerfreundlich: MDX ermöglicht die parallele Nutzung umfangreicher React-Komponenten mit Markdown und vereint Einfachheit mit Interaktivität.
Nachteile:
- Neuaufbauten: Codex-Seiten müssen für Aktualisierungen neu erstellt werden, wodurch dynamische Inhalte schwieriger zu verwalten sind.
- Anfängliche Erstellungszeit: Die Erstellung großer Inhaltsarchive kann einige Zeit in Anspruch nehmen.
„Es ist, als würde man ein Archiv erstellen, Arin“, sagte Captain Lifecycle, „eines, das gepflegt und aktualisiert werden muss, wenn neue Geschichten geschrieben werden.“
3. Inkrementelle statische Regeneration – Der adaptive Bewahrer
„Aber Captain“, Arins Stirn runzelte, als sie dachte, „Was wäre, wenn Codex seine Geschichten auffrischen müsste, ohne alles neu zu schreiben?“
Captain Lifecycle nickte. „Hier kommt die inkrementelle statische Regeneration ins Spiel. Es handelt sich um einen Bewahrer, der den Inhalt nach Bedarf aktualisiert und die Seiten aktuell hält, ohne das gesamte Archiv neu zu erstellen.“
Beispiel für geplante ISR mit Node-Cron:
Um die Seiten auf dem neuesten Stand zu halten, führte Arin einen Wächterzauber ein, der in festgelegten Intervallen ausgeführt wird.
npm install node-cronconst cron = require('node-cron'); cron.schedule('0 * * * *', () => { console.log('Regenerating static pages...'); require('./generateStaticBlogs'); }); console.log('Scheduled ISR running every hour.');Arins Einblick:
„Mit ISR reagiert Codex nicht nur – es passt sich an“, dachte sie und spürte ein Gefühl der Bereitschaft. „Die Benutzer werden Codex immer auf dem neuesten Stand finden und bereit sein, sie zu unterstützen.“
Fazit: Jenseits der Mission
Die Gewölbe standen ruhig und strahlend vor dem Wissen, das Arin in sie eingewoben hatte. Captain Lifecycle legte ihr eine Hand auf die Schulter, Stolz war in seinen Augen zu erkennen.„Sie haben gelernt, die Essenz von Codex vorab zu rendern. Aber denken Sie daran, es gibt Tools außerhalb unserer Reichweite, die dies noch einfacher machen.“
Arin nickte und verstand den Weg, der vor ihm lag.„Für Codex, für die Benutzer bereiten wir vor, passen uns an und dienen immer.“
Wichtiger Hinweis für Leser:
Die hier bereitgestellten Beispiele sind grundlegende Ansätze zum Verständnis von benutzerdefiniertem SSR und SSG. Schauen Sie sich für Anwendungen auf Produktionsebene Frameworks wieNext.js, Remix und Astro an, die optimierte, sichere und skalierbare Lösungen für das Pre-Rendering bieten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3