


Déploiement d'un site Jamstack sans serveur avec Redwoodjs, Faune et Vercel
Ce tutoriel vous guide dans la création d'une application sans serveur Jamstack à l'aide de Redwoodjs, Faunadb et Vercel. Nous tirons parti de l'API GraphQL de Fauna en tant que backend pour un frontend RedwoodJS, en déploiement sans effort avec le déploiement en un clic de Vercel.
Attendez-vous à une plongée profonde dans les concepts JamStack et sans serveur, ainsi qu'une expérience pratique en utilisant cette puissante pile technologique.
Construire votre application Redwood
RedwoodJS est un cadre pour les applications sans serveur, combinant React (frontend), GraphQL (données) et prisma (requêtes de base de données). Alors que d'autres cadres frontaux existent (comme le bison), RedwoodJS propose un écosystème mature et bien établi.
Nous contournerons les modèles de démarrage et nous construisons à partir d'un projet de séquoia de base, examinant chaque composant. Tout d'abord, installez le fil et exécutez ces commandes:
fil Créer un Redwood-App ./CSStricks CD CSStricks fil rw dev
Votre frontend fonctionne sur localhost:8910
et le backend sur localhost:8911
(avec un terrain de jeu Graphiql). La page d'atterrissage du séquoia devrait apparaître à localhost:8910
. (Remarque: Redwoodjs La version 0.21.0 est utilisée dans cet exemple; consultez la documentation pour la dernière version et la préparation de la production.)
Structure du projet
RedwoodJS hiérarchise la convention sur la configuration, fournissant une disposition de projet structurée:
<code>├── api │ ├── prisma │ │ ├── schema.prisma │ │ └── seeds.js │ └── src │ ├── functions │ │ └── graphql.js │ ├── graphql │ ├── lib │ │ └── db.js │ └── services └── web ├── public │ ├── favicon.png │ ├── README.md │ └── robots.txt └── src ├── components ├── layouts ├── pages │ ├── FatalErrorPage │ │ └── FatalErrorPage.js │ └── NotFoundPage │ └── NotFoundPage.js ├── index.css ├── index.html ├── index.js └── Routes.js</code>
Le projet est divisé en répertoires web
(frontend) et api
(backend), géré par les espaces de travail YARN. Nous remplacerons Prisma par Faunadb, en supprimant le répertoire prisma
et le contenu de db.js
(mais en gardant le fichier db.js
).
index.html
Le fichier index.html
contient le nœud Root Dom (<div id="redwood-app"></div>
) où l'application React est rendue. Redwoodjs, bien que orienté Jamstack, ne pratiquait actuellement pas de pré-rendu comme Next.js ou Gatsby.
index.js
index.js
rend le composant d'application principal dans l'élément DOM redwood-app
à l'aide de ReactDOM.render()
. Il utilise RedwoodProvider
pour la gestion du contexte et FatalErrorBoundary
pour la gestion des erreurs.
Routes.js
Routes.js
définit le routage de l'application à l'aide du routeur de Redwood.
Création de pages
Créons des pages à l'aide de la CLI de séquoia:
yarn rw g page home / Page de fil RW G sur
Cela génère les fichiers nécessaires pour HomePage
et AboutPage
. Simplifiez ces pages en supprimant les liens de navigation inutiles.
Disposition
Créez une disposition réutilisable pour la navigation:
Blog de mise en page RW G YARN
Modifier BlogLayout.js
pour inclure des liens de navigation vers HomePage
et AboutPage
en utilisant<link>
composants. Importez BlogLayout
dans HomePage
et AboutPage
pour intégrer la navigation.
Langue de définition du schéma de la faune (SDL)
Créez sdl.gql
avec le schéma suivant:
Type Post { Titre: String! Corps: String! } Type Query { Posts: [Post] }
Téléchargez ce schéma sur votre instance faunadb. Notez que FaunAdB crée des types intermédiaires; Nous expliquerons cela dans notre schéma RedwoodJS.
Redwoodjs SDL et services
Créez api/src/graphql/posts.sdl.js
reflétant le schéma de la faune, y compris le type PostPage
intermédiaire. Créez api/src/services/posts/posts.js
pour interroger l'API Fauna GraphQL à l'aide de graphql-request
. N'oubliez pas d'installer graphql-request
et graphql
dans le répertoire api
.
Autorisation de la faune
Configurez api/src/lib/db.js
pour inclure votre secret de Faunadb dans l'en-tête d'autorisation à l'aide de variables d'environnement.
Faunadb de semis
Utilisez le shell Fauna pour ajouter quelques exemples de messages à votre base de données.
Cellules
Générez un BlogPostsCell
pour récupérer et afficher les publications:
YARN RW Générez des objets de blogs cellulaires
Modifiez BlogPostsCell.js
pour interroger les posts
et rendre le titre et le corps de chaque publication. Importez BlogPostsCell
dans HomePage
.
Déploiement de Vercel
Connectez votre projet à Vercel. Modifiez netlify.toml
(s'il existe) pour définir apiProxyPath
sur "/ api". Ajoutez votre secret de faunadb aux variables environnementales de Vercel. La commande de construction de Vercel fonctionne de manière transparente avec Redwoodjs.
Votre application est maintenant terminée! Une démo en direct et un référentiel GitHub sont disponibles (les liens seraient insérés ici).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











Essayons de savoir un terme ici: "fournisseur de formulaire statique". Vous apportez votre HTML

Au début d'un nouveau projet, la compilation SASS se produit en un clin d'œil. Cela se sent bien, surtout quand il est associé à BrowSersync, qui recharge

Dans cette semaine, le Roundup des nouvelles de la plate-forme, Chrome présente un nouvel attribut pour le chargement, les spécifications d'accessibilité pour les développeurs Web et la BBC Moves

C'est moi qui regarde l'élément HTML pour la première fois. J'en ai été conscient depuis un certain temps, mais il ne l'a pas encore pris pour un tour. Il a un peu cool et

L'achat ou la construction est un débat classique de la technologie. Construire des choses vous-même peut être moins cher car il n'y a pas d'article de ligne sur votre facture de carte de crédit, mais

Pendant un certain temps, iTunes était le grand chien du podcasting, donc si vous avez lié "Abonnez-vous au podcast" pour aimer:

Le chef de document n'est peut-être pas la partie la plus glamour d'un site Web, mais ce qui y va est sans doute tout aussi important pour le succès de votre site Web que son

Il existe de nombreuses plates-formes d'analyse pour vous aider à suivre les données des visiteurs et d'utilisation sur vos sites. Peut-être plus particulièrement Google Analytics, qui est largement utilisé
