Optimizando el Proceso de Creación de Componentes

Rate this content
Bookmark

React ayudó a popularizar el uso de componentes para desarrollar sitios web y aplicaciones. Es una filosofía fantástica, pero si bien los componentes han mejorado nuestros sitios web, el flujo de trabajo para crear componentes no ha mejorado mucho. Deshagámonos de las partes tediosas, como conectar tus componentes a tu CMS, y permitamos que los desarrolladores se centren en las partes importantes. Con Prismic Slice Machine, estamos brindando a los desarrolladores el mejor flujo de trabajo para crear componentes. ¡En solo unos minutos crearemos un componente de React, lo conectaremos a nuestro CMS, lo agregaremos a Storybook y lo publicaremos en nuestro sitio!

9 min
14 May, 2021

Video Summary and Transcription

Slice Machine es un flujo de trabajo de desarrollo que permite la creación de secciones reutilizables de un sitio web. La charla cubre el proceso de agregar una sección de mapa a un sitio web existente de Next.js y construir el componente. También se discute el estilo de la sección de mapa, la publicación de cambios y la activación de una reconstrucción. El resumen destaca los puntos clave de la charla de manera concisa.

Available in English

1. Introducción a Slice Machine

Short description:

Hola, Alex de Prismic aquí, y hoy voy a hablarles sobre Slice Machine, nuestro nuevo flujo de trabajo de desarrollo que le permite crear componentes rápidamente y brinda a sus editores el poder de construir las páginas que necesitan. Entonces, ¿qué es Slice Machine? Bueno, una slice de Prismic es básicamente una sección repetible y reutilizable de su sitio que está conectada al CMS de Prismic, y Slice Machine es un entorno de desarrollo que facilita la creación de slices.

nuevo flujo de trabajo de desarrollo que le permite crear componentes rápidamente y brinda a sus editores el poder de construir las páginas que necesitan.

Entonces, ¿qué es Slice Machine? Bueno, una slice de Prismic es básicamente una sección repetible y reutilizable de su sitio que está conectada al CMS de Prismic, y Slice Machine es un entorno de desarrollo que facilita la creación de slices.

Así que en esta demostración de charla relámpago, vamos a crear una slice con Slice Machine. Vamos a enviar esa slice a Prismic. Vamos a completar el contenido en esa slice, y luego vamos a enviar esa slice a producción para actualizar nuestro sitio web.

2. Adding a Map Slice and Starting Slice Machine UI

Short description:

Comencemos agregando una slice a nuestro sitio web existente de Next.js construido con Slice Machine. Crearemos una slice de mapa que muestra la ubicación, dirección, imagen y encabezado. Después de crear la slice, exploraremos los archivos generados y comenzaremos la interfaz de Slice Machine. Eliminaremos el contenido predeterminado y crearemos la slice desde cero, comenzando con el encabezado.

Entonces, no perdamos más tiempo, comencemos agregando una slice a nuestro sitio web existente de Next.js construido con Slice Machine. Como pueden ver aquí, tengo este sitio de restaurante, que tiene un menú y algunas otras secciones aquí. Veamos el archivo de Figma en el que se basa esto. Y como pueden ver, hemos creado slices de cada una de estas partes. Cada una de estas es una slice aquí, y esta es la slice que vamos a agregar hoy.

Es una slice de mapa que básicamente muestra la ubicación del lugar, la dirección y algunos otros elementos con una imagen y un encabezado. Entonces, sigamos adelante, no perdamos tiempo, vayamos a nuestra terminal y creemos esta slice. Voy a ejecutar prismic sm create slice, así nomás. Y me preguntará dónde quiero esta slice. Y digo en mi carpeta de slices, y la llamo location map, así nomás. Genial.

Ahora que hemos creado esa slice, veamos lo que acabamos de hacer con ejecutar ese comando. Aquí en location map, tenemos cuatro archivos. index.js es un componente de react. Aquí tenemos una historia de storybook que ya está construida para nosotros. Aquí en los mocks, tenemos algunos datos de mock que llenarán nuestra historia. Y en el modelo, esto muestra la estructura de datos. Volveremos a esto en un segundo y veremos qué cambios se producen una vez que los editemos en la interfaz de Slice Machine.

Voy a iniciar Slice Machine UI ejecutando Prismic, SM y luego develop. Y esto iniciará un servidor de desarrollo local y pondrá en marcha la interfaz de Slice Machine. Así que volvamos aquí. Y aquí mismo, vemos que location map está junto a todos nuestros otros componentes. Es posible que los reconozcan de nuestro sitio web. Así que sigamos adelante. Deshagámonos de lo que viene por defecto y creemos esto totalmente desde cero. Estoy viendo Figma. Veo que tenemos prácticamente cuatro tipos diferentes que necesitamos construir aquí. Tenemos este encabezado, comencemos con eso. Voy a agregar un campo de texto enriquecido y llamarlo encabezado. Y voy a deseleccionar todo y hacer que sea solo un H2, llamarlo encabezado, así nomás.

3. Adding Map Slice and Building Component

Short description:

Voy a hacer clic en Guardar. A continuación, tenemos esta dirección. Voy a codificar en duro la ubicación, así que vamos a por la dirección. Voy a tomar una imagen y etiquetarla como imagen. Y luego necesitamos una geolocalización porque tenemos un tipo de mapa aquí. Así que GeoPoint nos permitirá hacer eso. Así que voy a obtener la ubicación. Eso es lo que voy a llamar a eso. Y para la configuración de burla, voy a elegir la sede de Prismic. Nuestros datos se han actualizado. La forma de estos datos ha cambiado. Así que ahora podemos empezar a construir nuestro componente ahora que hemos definido la forma. Voy a colocar eso ahí. Ese es mi encabezado. Aquí está mi dirección. Voy a tomar mi imagen. Y luego aquí para mi ubicación, simplemente voy a pegar eso y en realidad es un objeto que tiene latitud y longitud. Voy a mostrar la latitud y vamos a verlo en storybook.

Y voy a hacer clic en Guardar. A continuación, tenemos esta dirección. Voy a codificar en duro la ubicación, así que vamos a por la dirección. Voy a hacer un campo de texto enriquecido para la dirección así. Presionar Enter y agregar una etiqueta aquí, así. Y luego vamos a tomar esta imagen. Así que tenemos todos estos diferentes tipos para elegir. Voy a tomar una imagen y etiquetarla como imagen. Así nomás. Genial. Y luego necesitamos una geolocalización porque tenemos un tipo de mapa aquí. Así que GeoPoint nos permitirá hacer eso. Así que voy a obtener la ubicación. Eso es lo que voy a llamar a eso. Voy a entrar aquí, darle una etiqueta. Y para la configuración de burla, voy a elegir la sede de Prismic. Justo ahí. Y ahora guardo este modelo en el sistema de archivos y vamos a ver cómo se ve esto en aquí en nuestro sistema de archivos.

Así que vemos que esto se agregó de inmediato. Nuestros data se ha actualizado. La forma de estos data ha cambiado. Así que ahora podemos empezar a construir nuestro componente ahora que hemos definido la forma tan rápido ya. Así que diríjase aquí a slices, voy a copiar o voy a mostrar fragmentos de código que puedo copiar fácilmente en mi componente. Haga clic en copiar código en este encabezado y vaya a mi componente de react. Borro lo que hay aquí y voy a pegar eso ahí. Ese es mi encabezado. Aquí está mi dirección y los estilizaré en un minuto. Voy a tomar mi imagen, copiar código, veo que estoy pegando esa imagen. Y luego aquí para mi ubicación, simplemente voy a pegar eso y en realidad es un objeto que tiene latitud y longitud. Voy a mostrar la latitud y vamos a verlo en storybook.

4. Agregando Slice de Mapa de Ubicación

Short description:

Tengo Storybook funcionando. Vamos a ver nuestro mapa de ubicación. Tenemos nuestro título, dirección, imagen y latitud. Ahora voy a darle estilo. Agregué clases y el componente de mapa. Codifiqué en duro el texto de ubicación. Tomé una captura de pantalla para el editor. Envié el slice a Prismic y el código a GitHub. Agregué el nuevo slice como opción para los editores. Ahora nuestros editores saben lo que están obteniendo. Agregué el mapa de ubicación a la página de inicio. Vamos a completarlo con algo de contenido.

Tengo storybook funcionando. Ya está conectado. Vamos a ver nuestro mapa de ubicación y boom, así de fácil. Tenemos nuestro título, nuestra dirección, nuestra imagen y nuestra latitud. Todo es solo ficticio por defecto, así que podemos mejorarlo con el tiempo. Pero por ahora esto se ve bien.

Ahora voy a darle estilo rápidamente. Veamos qué podemos hacer. Muy bien, hemos avanzado hasta el estilo. He agregado algunas clases. También he traído este componente de mapa que hice que espera este objeto de ubicación. Y también codifiqué en duro este texto de ubicación y solo hicimos algunas reestructuraciones y estilos. Y ahora nuestro componente se ve mucho, mucho mejor, así de fácil.

Ahora podemos tomar una captura de pantalla que se puede usar para nuestro editor. Tomaremos una captura de pantalla así. Y así nuestros editores pueden usar eso en Prismic. Y ahí tenemos nuestra captura de pantalla que se ve genial. Ahora podemos seguir adelante y enviar nuestro slice a Prismic para que podamos usarlo en el CMS. Y luego también voy a enviar mi código que hicimos con Slice Machine a GitHub. Para que Vercel pueda reconstruir mi aplicación de Next JS. Voy a decir agregar slice de mapa de ubicación, git push. Y ahora que se reconstruye, voy a ir a mi repositorio de Prismic y voy a ir a mis tipos personalizados y agregar este nuevo slice como opción para que mis editores lo usen.

Así que vemos aquí en slices compartidos, estos son los otros slices que han podido usar. Y ahora tenemos nuestro nuevo mapa de ubicación con esa captura de pantalla. Podemos agregar eso a nuestros tipos personalizados y guardar. Y ahora nuestros editores saben exactamente lo que están obteniendo cuando ingresan a editar la página de inicio. Así que voy a entrar a la página de inicio y puedo agregar este nuevo slice en cualquier lugar entre los otros slices, voy a ir hasta el final ahora, porque ahí es donde va este. Y voy a desplazarme y ahí está nuestro mapa de ubicación. Así que vamos a completarlo con algo de contenido. Tengo un título aquí.

5. Publicación de cambios y reconstrucción

Short description:

Después de hacer los ajustes necesarios, presioné el botón de guardar y publiqué los cambios. El webhook desencadenó una reconstrucción y ahora podemos ver los componentes actualizados en la parte inferior.

Así que una gran historia comienza con una gran cena. Y tenemos esta dirección. Ya tengo una imagen cargada que puedo elegir. Y tengo una latitud y longitud pegadas aquí que vamos a usar. Boom, justo ahí. Ahora voy a presionar guardar. Y lo que puedo hacer es que Prismic tiene una excelente función de vista previa. Así que podría hacer clic en producción, pero por el bien de esto, vamos a saltar a la publicación, pero podría probarlo primero y asegurarme de que se vea exactamente como quiero. Puedo publicarlo ahora o más tarde. Voy a publicarlo ahora, presionando publicar y boom, así de fácil. Va a desencadenar una reconstrucción y vamos a ver cómo se ve cuando estemos listos. Una vez que hacemos clic en publicar, el webhook hace que Versell reconstruya nuestra página y aquí en la parte inferior, genial, se ve muy bien. Ahí están nuestros componentes. Así que en el tiempo de esta charla, creamos un componente React con algunos tipos diferentes ya vinculados al CMS de Prismic con una historia de Storybook para facilitar el desarrollo y una vista visual previa para que nuestros editores sepan qué componente están eligiendo. Todos nuestros cambios se respaldaron en Git y todo esto me permitió lanzar un constructor de páginas. No solo una página, sino un constructor de páginas. Me encantaría que pruebes Prismic Slice Machine. Ve a slicemachine.dev. Haznos saber qué piensas. Muchas gracias.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

React Advanced Conference 2022React Advanced Conference 2022
25 min
A Guide to React Rendering Behavior
Top Content
React is a library for "rendering" UI from components, but many users find themselves confused about how React rendering actually works. What do terms like "rendering", "reconciliation", "Fibers", and "committing" actually mean? When do renders happen? How does Context affect rendering, and how do libraries like Redux cause updates? In this talk, we'll clear up the confusion and provide a solid foundation for understanding when, why, and how React renders. We'll look at: - What "rendering" actually is - How React queues renders and the standard rendering behavior - How keys and component types are used in rendering - Techniques for optimizing render performance - How context usage affects rendering behavior| - How external libraries tie into React rendering
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Building Better Websites with Remix
Top Content
Remix is a new web framework from the creators of React Router that helps you build better, faster websites through a solid understanding of web fundamentals. Remix takes care of the heavy lifting like server rendering, code splitting, prefetching, and navigation and leaves you with the fun part: building something awesome!
React Advanced Conference 2023React Advanced Conference 2023
33 min
React Compiler - Understanding Idiomatic React (React Forget)
Top Content
React provides a contract to developers- uphold certain rules, and React can efficiently and correctly update the UI. In this talk we'll explore these rules in depth, understanding the reasoning behind them and how they unlock new directions such as automatic memoization. 
React Advanced Conference 2022React Advanced Conference 2022
30 min
Using useEffect Effectively
Top Content
Can useEffect affect your codebase negatively? From fetching data to fighting with imperative APIs, side effects are one of the biggest sources of frustration in web app development. And let’s be honest, putting everything in useEffect hooks doesn’t help much. In this talk, we'll demystify the useEffect hook and get a better understanding of when (and when not) to use it, as well as discover how declarative effects can make effect management more maintainable in even the most complex React apps.
React Summit 2022React Summit 2022
20 min
Routing in React 18 and Beyond
Top Content
Concurrent React and Server Components are changing the way we think about routing, rendering, and fetching in web applications. Next.js recently shared part of its vision to help developers adopt these new React features and take advantage of the benefits they unlock.In this talk, we’ll explore the past, present and future of routing in front-end applications and discuss how new features in React and Next.js can help us architect more performant and feature-rich applications.
React Advanced Conference 2021React Advanced Conference 2021
27 min
(Easier) Interactive Data Visualization in React
Top Content
If you’re building a dashboard, analytics platform, or any web app where you need to give your users insight into their data, you need beautiful, custom, interactive data visualizations in your React app. But building visualizations hand with a low-level library like D3 can be a huge headache, involving lots of wheel-reinventing. In this talk, we’ll see how data viz development can get so much easier thanks to tools like Plot, a high-level dataviz library for quick & easy charting, and Observable, a reactive dataviz prototyping environment, both from the creator of D3. Through live coding examples we’ll explore how React refs let us delegate DOM manipulation for our data visualizations, and how Observable’s embedding functionality lets us easily repurpose community-built visualizations for our own data & use cases. By the end of this talk we’ll know how to get a beautiful, customized, interactive data visualization into our apps with a fraction of the time & effort!

Workshops on related topic

React Summit 2023React Summit 2023
170 min
React Performance Debugging Masterclass
Top Content
Featured WorkshopFree
Ivan’s first attempts at performance debugging were chaotic. He would see a slow interaction, try a random optimization, see that it didn't help, and keep trying other optimizations until he found the right one (or gave up).
Back then, Ivan didn’t know how to use performance devtools well. He would do a recording in Chrome DevTools or React Profiler, poke around it, try clicking random things, and then close it in frustration a few minutes later. Now, Ivan knows exactly where and what to look for. And in this workshop, Ivan will teach you that too.
Here’s how this is going to work. We’ll take a slow app → debug it (using tools like Chrome DevTools, React Profiler, and why-did-you-render) → pinpoint the bottleneck → and then repeat, several times more. We won’t talk about the solutions (in 90% of the cases, it’s just the ol’ regular useMemo() or memo()). But we’ll talk about everything that comes before – and learn how to analyze any React performance problem, step by step.
(Note: This workshop is best suited for engineers who are already familiar with how useMemo() and memo() work – but want to get better at using the performance tools around React. Also, we’ll be covering interaction performance, not load speed, so you won’t hear a word about Lighthouse 🤐)
React Advanced Conference 2021React Advanced Conference 2021
132 min
Concurrent Rendering Adventures in React 18
Top Content
Featured WorkshopFree
With the release of React 18 we finally get the long awaited concurrent rendering. But how is that going to affect your application? What are the benefits of concurrent rendering in React? What do you need to do to switch to concurrent rendering when you upgrade to React 18? And what if you don’t want or can’t use concurrent rendering yet?

There are some behavior changes you need to be aware of! In this workshop we will cover all of those subjects and more.

Join me with your laptop in this interactive workshop. You will see how easy it is to switch to concurrent rendering in your React application. You will learn all about concurrent rendering, SuspenseList, the startTransition API and more.
React Summit Remote Edition 2021React Summit Remote Edition 2021
177 min
React Hooks Tips Only the Pros Know
Top Content
Featured Workshop
The addition of the hooks API to React was quite a major change. Before hooks most components had to be class based. Now, with hooks, these are often much simpler functional components. Hooks can be really simple to use. Almost deceptively simple. Because there are still plenty of ways you can mess up with hooks. And it often turns out there are many ways where you can improve your components a better understanding of how each React hook can be used.You will learn all about the pros and cons of the various hooks. You will learn when to use useState() versus useReducer(). We will look at using useContext() efficiently. You will see when to use useLayoutEffect() and when useEffect() is better.
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript, and TDD
Top Content
Featured WorkshopFree
ReactJS is wildly popular and thus wildly supported. TypeScript is increasingly popular, and thus increasingly supported.

The two together? Not as much. Given that they both change quickly, it's hard to find accurate learning materials.

React+TypeScript, with JetBrains IDEs? That three-part combination is the topic of this series. We'll show a little about a lot. Meaning, the key steps to getting productive, in the IDE, for React projects using TypeScript. Along the way we'll show test-driven development and emphasize tips-and-tricks in the IDE.
React Advanced Conference 2021React Advanced Conference 2021
145 min
Web3 Workshop - Building Your First Dapp
Top Content
Featured WorkshopFree
In this workshop, you'll learn how to build your first full stack dapp on the Ethereum blockchain, reading and writing data to the network, and connecting a front end application to the contract you've deployed. By the end of the workshop, you'll understand how to set up a full stack development environment, run a local node, and interact with any smart contract using React, HardHat, and Ethers.js.
React Summit 2023React Summit 2023
151 min
Designing Effective Tests With React Testing Library
Top Content
Featured Workshop
React Testing Library is a great framework for React component tests because there are a lot of questions it answers for you, so you don’t need to worry about those questions. But that doesn’t mean testing is easy. There are still a lot of questions you have to figure out for yourself: How many component tests should you write vs end-to-end tests or lower-level unit tests? How can you test a certain line of code that is tricky to test? And what in the world are you supposed to do about that persistent act() warning?
In this three-hour workshop we’ll introduce React Testing Library along with a mental model for how to think about designing your component tests. This mental model will help you see how to test each bit of logic, whether or not to mock dependencies, and will help improve the design of your components. You’ll walk away with the tools, techniques, and principles you need to implement low-cost, high-value component tests.
Table of contents- The different kinds of React application tests, and where component tests fit in- A mental model for thinking about the inputs and outputs of the components you test- Options for selecting DOM elements to verify and interact with them- The value of mocks and why they shouldn’t be avoided- The challenges with asynchrony in RTL tests and how to handle them
Prerequisites- Familiarity with building applications with React- Basic experience writing automated tests with Jest or another unit testing framework- You do not need any experience with React Testing Library- Machine setup: Node LTS, Yarn