Next.js 14: Master Server Actions, React Server Components, and More 💻

Sdílet
Vložit
  • čas přidán 8. 08. 2024
  • Learn Next.JS 14: From URL synchronization to data manipulation and database interaction, this journey will immerse you in the intricacies of modern web development. Uncover optimization strategies, security practices, and engage with the community.
    Transform your understanding of web development now! 🚀💻
    ▶ Don't miss more live sessions at: / midudev
    00:00:00 - Introduction
    00:02:11 - Explaining what we've done
    00:09:21 - Let's get our hands moving
    00:10:25 - Working with Invoices Page
    00:12:31 - State in the URL: Information worth millions
    00:14:24 - Server-Side Rendering and Initial Load
    00:15:05 - Capturing user input
    00:16:05 - Creating a URL to sync with input and URL
    00:16:49 - How to use SearchParams?
    00:20:04 - Updating the URL
    00:21:08 - Testing input and URL synchronization
    00:21:59 - Syncing the initial state
    00:23:43 - Displaying information
    00:24:38 - Showing results based on our search
    00:27:47 - Community questions
    00:28:51 - Explanation of what we did
    00:31:42 - Is the Key a good practice?
    00:32:05 - searchParams on the server and client
    00:32:34 - Implementing a Debounce
    00:37:52 - Pagination reset
    00:38:36 - Creating Pagination
    00:40:45 - Getting the current page
    00:42:22 - Generating URLs
    00:43:04 - Bringing pagination to life
    00:45:50 - Code explanation
    00:46:33 - What are Server Actions and what do they do?
    00:49:19 - Example of a Server Action
    00:50:44 - Create Invoices Page
    00:52:09 - File for all actions
    00:52:42 - 'Use Server'
    00:53:37 - Creating/Integrating the 'action'
    00:56:51 - Validations
    00:58:52 - Chapter 33
    01:00:22 - Creating the Date (format and explanation)
    01:02:19 - Calling the database and implementing information
    01:04:34 - Integrating SQL (injection?)
    01:07:01 - Avoiding cache and redirecting with Next.js
    01:12:15 - Comments from the Miducommunity
  • Věda a technologie

Komentáře • 113

  • @Alejandro_Pirez94
    @Alejandro_Pirez94 Před 2 měsíci +15

    No puedo explicar cuantas cosas de Midudev me han servido a lo largo de los años para pasar al siguiente nivel de programación, gracias por la humildad y la capacidad de ayudar sin experar nada a cambio. Haces la diferencia en el mundo,. Saludos desde Cuba. T:.A:.F

  • @cordoobez
    @cordoobez Před 8 měsíci +1

    Grande Midu!!!! Todos los días veo tu contenido, no solo que me mantengo al día con avances y chismes, sino que también aprendo mucho... Vivan los server actions!!!!

  • @SonGoku-pc7jl
    @SonGoku-pc7jl Před 6 měsíci +3

    lo vi en la tv sin pc i no me acorde de comentar... QUE PEDAZO DE CLASE ESPECTACULAR COMO LA ANTERIOR!

  • @elverdavid_dev
    @elverdavid_dev Před 8 měsíci +3

    Estaba haciendo un buscador y me estaba costando hacerlo , ahora ya puedo terminarlo , muchas gracias midu

  • @carloscarballo170
    @carloscarballo170 Před 7 měsíci

    Excelente explicación, muy ordenado y honesto a la hora de valorar las distintas posibilidades

  • @albertoprieto522
    @albertoprieto522 Před 4 měsíci +1

    Lo combine con firestore y increible

  • @facebook5423
    @facebook5423 Před 8 měsíci

    Que bien explicas todo, haces parecer que es fácil. Gracias por todo el contenido midu

  • @GabrielPozo
    @GabrielPozo Před 8 měsíci

    Excelente explicación, muchas gracias por tu esfuerzo compartiendo contenido de calidad!

  • @ricardohernandezmendez4207
    @ricardohernandezmendez4207 Před 4 měsíci

    Estoy iniciando a aprender Nextjs. Y en este curso he aprendido los conceptos fundamentales. Gracias Midu.

  • @tomas6909
    @tomas6909 Před 7 měsíci +3

    Te amo miduuuu, en vez de ver netflix te miro a vos. Crack!!

  • @jorgevillafraz2656
    @jorgevillafraz2656 Před 8 měsíci +3

    Buenisimo Midu, gracias. Espero tengas planes de terminar el tutorial de la documentación.

  • @luis_forerop
    @luis_forerop Před 5 měsíci

    Que locura Miduuuu! Gemini me acaba de redireccionar al video al hacer una pregunta sobre next 14! Que crack que sos

  • @leonardopaz2525
    @leonardopaz2525 Před 8 měsíci +1

    Excellent este video y tus opiniones de si esta tecnologia es buena , si aplica o no para cada problema como lo dices al final sobre los server actions y server components

  • @MANULKful
    @MANULKful Před 7 měsíci +2

    Midu, estoy siguiendo el learn de Next y la verdad es que estos videos son fantásticos. Me han ayudado a comprender Next, como algunos temas de API nativos que tenia oxidado y me he puesto a refrescarlo. Vamos el super del desarrollo que entras por una cosita y sales con un carro entero!!. 😄. De verdad muchas gracias y muchos exitos midu!!

  • @hellblade-kaos
    @hellblade-kaos Před 8 měsíci

    Muchas gracias por todo lo que haces midu

  • @yavallejo
    @yavallejo Před 5 měsíci

    Excelente video, Gracias por compartir, saludos

  • @alejqndrocarranzaruiz4306
    @alejqndrocarranzaruiz4306 Před 3 měsíci

    tremenda papeada la de al final
    te amo midu ♥
    por ti le echo ganas a mi chamba y siempre uso buenas practicas

  • @ItamCrdns840
    @ItamCrdns840 Před 8 měsíci

    Excelente tutorial
    Muy bien explicado

  • @user-ku6zw5ve8y
    @user-ku6zw5ve8y Před 8 měsíci +1

    Gracias por este video!!!

  • @matiasandrada6989
    @matiasandrada6989 Před 8 měsíci

    Genio midu. Desde Arg!!

  • @nikolaydiazromero4466
    @nikolaydiazromero4466 Před 8 měsíci

    Me parece que los server action ya si los juntas con arquitectura MVC tienen muchisima potencia con prisma te puedes hacer un controlador validando los datos con zod que midu tiene un tuto genial 😉😉 y en el fichero de actions ya injectas lo que te llegue en el form y al final tienes algo como una 'API' y lo usas en todos los formularios que quieras.

  • @capodevdigital
    @capodevdigital Před 8 měsíci

    Lo estaba esperandoooo

  • @luislavayen9495
    @luislavayen9495 Před 6 měsíci

    me suscribo! muy bueno

  • @Deus-lo-Vuilt
    @Deus-lo-Vuilt Před 7 měsíci

    Gracias Midu , super entrete el video!

  • @PiiiPheCarrasco
    @PiiiPheCarrasco Před 5 měsíci +1

    Gracias Midu! excelente tutorial

  • @jorgericaldi6438
    @jorgericaldi6438 Před 8 měsíci +9

    para los que no entienden lo de la key del Suspence es porque en la magia de next, lo lleva a client y lo "monta una vez" como todo componente que usualmente creas, si usas un useEffect con dependecia vacia "[]" esto solo se ejecuta una vez o como en classes usabas ComponentDidMount. Para poder ejecutar nuevamente estos "lyfecycles" un truco es cambiar la key dinamicamente tal como lo hace midu. no se recomienda nunca hacer esto porque haces que se renderice por completo todo el componente, lo gracioso es que "en este caso" es lo que deseamos.

  • @sergiobc00
    @sergiobc00 Před 4 měsíci +2

    Dónde puedo ver la siguiente clase que menciona midu? (Autenticación) Muy buena clase por cierto!

  • @servarcon6687
    @servarcon6687 Před 8 měsíci

    Gracias midu

  • @xurxomf
    @xurxomf Před 8 měsíci +1

    Necesito la siguiente parte cuanto antes lol

  • @rguere
    @rguere Před 3 měsíci +1

    muy bueno

  • @lorenzovignolo8011
    @lorenzovignolo8011 Před 4 měsíci

    Midu, como siempre, increíble. He hecho el tutorial y luego vi tus videos y la verdad es la mejor forma de aprender. Tengo una duda. Que sucede con librerías de componentes con MUI ?. No serían compatible con los server components, no? ojalá lo veas, por que es una grand duda. Mil gracias!

  • @mzzegarra
    @mzzegarra Před měsícem +1

    Gracias crack!😀

    • @midulive
      @midulive  Před měsícem

      Gracias a ti! Vaya mega aporte! Te lo agradezco un montón amigo!!!!! 🔥

  • @manutube8080
    @manutube8080 Před 6 měsíci +1

    Top video! Solo una cosita, no sirve el skeleto en producción pero si en localhost

  • @husdadymena842
    @husdadymena842 Před 8 měsíci +1

    Midu, podrías hacer un video sobre integrar plaiceholder con Nextjs 14, realmente estoy teniendo problemas para usar dicha librería con Next... He seguido la doc pero sólo tiene ejemplos con Nextjs 13, por lo que tengo problemas con esta versión de Next asi que agradeceria tu ayuda

  • @albertoprieto522
    @albertoprieto522 Před 7 měsíci

    Muy buenos

  • @rubenn6160
    @rubenn6160 Před 8 měsíci +5

    Nms apenas aprendi next 13
    Maldita seaaaaa

  • @emmanuelsalvo6554
    @emmanuelsalvo6554 Před 8 měsíci +2

    De casualidad el método get de 'searchParams' no devuelve undefined en el primer renderizado ya que al montarse el componente aún las queries del router pueden no estar disponibles?

  • @MrMartinMDQ
    @MrMartinMDQ Před 13 dny

    Buenas, me encantó el curso. Consulta el esqueleto del componente es responsive?

  • @Luis_Orlando01
    @Luis_Orlando01 Před 8 měsíci

    gracias por la aclaración de los server actions y sus ventajas y desventajas, asi como dejar claro, que son una opción no una obligación

  • @jacquelinerodrigues2654
    @jacquelinerodrigues2654 Před 3 měsíci

    ta barbaro! se sabe si continuo con el el tutorial? o si planea hacerlo?

  • @magguer
    @magguer Před 6 měsíci

    hola Midu! Podrias hacer un tuto explicando como usar Zustand o useContext en Next14 para poder compartir estrados entre los server y client components? Gracias, es muy útil tu trabajo !

  • @gustavovasquez5263
    @gustavovasquez5263 Před 8 měsíci

    tengo una consulta, despues de realizar el proceso de autenticacion segun la guia, retorna un objeto con los datos del usuario, hay alguna forma de recuperar ese objeto desde cualquier parte de la aplicacion con las configuraciones de next-auth?

  • @ylayalysalas3155
    @ylayalysalas3155 Před 3 měsíci

    SOS
    Midu gracias por este video me ayudo mucho.
    Ahora tengo un problema con el estado, como puedo inicializar el estado del Store con la data del Localstorage, estoy utilizando Redux/toolkit

  • @serlismaldonado
    @serlismaldonado Před 8 měsíci

    Crear prototipos con server actions es una pasada, precisamente porque no tienes que montar una API. ¡Claro, eso supone que te limitas a tener todo empaquetado dentro de la aplicación sin poder comunicarte hacia fuera con la API; Pero vamos!, puedes hacer algo muy rápido, seguro y escalable. Como dice el MIDU, si necesitas una API, simplemente créala.

  • @marianobanchio9338
    @marianobanchio9338 Před 7 měsíci +1

    Gracias por compartir esto!! El código está en github?

  • @AlfredoLopez-mc8ds
    @AlfredoLopez-mc8ds Před 8 měsíci

    love

  • @Edwinil
    @Edwinil Před 8 měsíci +1

    Grande Midu muchas gracias por el video. Me quede pendiente de ver como maneja los errores del Zod >:/,

    • @Edwinil
      @Edwinil Před 8 měsíci +1

      Al final esto se consigue convirtiendo el formulario en un "use client"
      y en el server action que al existir el error lo devuelva, algo asi
      const validation = createSchemaInvoice.safeParse(rawData);
      if (!validation.success) {
      return validation.error.issues;
      }
      Y en el formumalio ya se maneja como se quiera por ejemplo
      const [errors, setErrors] = useState([])
      const formValidationAction = async (formData: FormData) => {
      const actionResult = await createInvoice(formData);
      if (actionResult) {
      setErrors(actionResult)
      }
      }

  • @samuelbocanegradelgado9020
    @samuelbocanegradelgado9020 Před 8 měsíci +2

    Excelente, muchas gracias. 🤙 ¿Podría hacer un tutorial de NEXT JS 14 con Apollo Client?

    • @dvsys751
      @dvsys751 Před 8 měsíci

      Cuando viste que midu suba un video de apollo?

  • @CarlosGutierrez-gx1vr
    @CarlosGutierrez-gx1vr Před 4 měsíci

    Hola que usas para tener esos console logs directo en el VSCode ?, esta fabuloso, Felicidades por el curso en verdad hacer ver fácil todo !

  • @yovanymorales3828
    @yovanymorales3828 Před 8 měsíci

    Primero ❤

  • @hannielgutierrez9139
    @hannielgutierrez9139 Před 8 měsíci

    Cómo han trabajado los roles en sus sistemas ? Todos los tutos que he visto solo hacen referencia a un rol definido hardcorde como admin pero ninguno es dinámico que puedas guardar en la base de datos

  • @cristianmoreno5486
    @cristianmoreno5486 Před 6 měsíci

    Midu yo podría en los server components hacer el uso de un orm para hacer las operaciones? X ejemplo prisma orm ?

  • @carlosterrazas8913
    @carlosterrazas8913 Před 8 měsíci +2

    puedes subir el codigo a git en tu repositorio. muchas gracias.

  • @lucascubile7141
    @lucascubile7141 Před měsícem

    Midu hay algo que no entiendo. Si yo desarrollo una API externa con express /django o lo que sea. Todo lo de la query funcionaría igual no? solo que el fetching se haría al endpoint de la API y de la API a la db no? Me cuesta enternder un poco el hecho de que Next se conecte directo a la DB. Estoy muy acostumbrado a separar front y back. Es normal trabajar con backends separados cuando se usa next o es mas comun conectarse derecho a la DB como vos? (pasa q no entiendo si lo estas haciendo mas para no levantar un servidor al pepe y gastar tiempo en eso o realmente es standard realizarlo asi)

  • @kegovc
    @kegovc Před 2 měsíci +1

    Alguien sabe si Midu subió lo de Next Auth ?

  • @oliverbarreto1838
    @oliverbarreto1838 Před 6 měsíci

    Igual de bueno que el mega curso de fullstackopen … va a continuar la serie hasta el final con login, autenticación, etc ??? O simplemente me he perdido y no llego a encontrar el link a los vídeos siguientes ???

  • @tomascoglia
    @tomascoglia Před 7 měsíci

    Buenas gente, alguien sabe cual es el video siguiente a este? gracias de antemano y saludos!

  • @sebastianmidolo3869
    @sebastianmidolo3869 Před 3 měsíci

    No es mejor usar datos de la cahe en vez de un loading cada vez?

  • @lebaf8661
    @lebaf8661 Před 5 měsíci

    Podrías hacer un video usando getserversideprops leyendo una API, y luego podrías usar server actions 😅, no consigo pensar como transformar el codigo. Saludos.

  • @HumbertoColmenares
    @HumbertoColmenares Před 6 měsíci

    Estoy viendo un proyecto que usa import "server-only" cuál es la diferencia entre "use server"? saludos

  • @axlsantos6519
    @axlsantos6519 Před 7 měsíci

    Como se llama la extension del package.json para minimizar los demas archivos?

  • @JuanPabloGallegoJaramillo
    @JuanPabloGallegoJaramillo Před 4 měsíci

    help
    por que se reinica el componente cuando envio la data , nunca llega el console.log?
    export async function createMemberTeam(formData: FormData) {
    'use server';
    console.log('createMemberTeam', formData);
    }

  • @user-no6dq9kf6c
    @user-no6dq9kf6c Před 6 měsíci +1

    alguien sabe que extension usa midu para los console.log ver en el mismo archivo?? es muy util

  • @yonathanpenuela8530
    @yonathanpenuela8530 Před 4 měsíci +3

    y cuando la otra clase?

  • @diegogrande478
    @diegogrande478 Před 8 měsíci

    En caso de consumir una API de terceros, creéis que lo recomendable es realizar las peticiones desde una server action o desde el cliente?? por ejemplo, en una paginación de una tabla donde queremos la información actualizada y la info. se consume de un servidor de terceros, no sería más eficiente realizar las peticiones directamente desde el cliente en lugar de hacerlas desde una server action y a continuación pasarle la info al browser del cliente?

    • @MrCone9
      @MrCone9 Před 8 měsíci +1

      Si las haces desde el servidor tienes dos cosas clave. 1. tú controlsa el hardware, sabes si tiene potencia y velocidad para realizar la petición. 2. Al usuario le llega ya información del tirón, no tiene que cargar(mejora la experiencia de usuario), por otro lado y desde mi punto de vista tiene una cosa mala... el coste que tu servidor sea el que realice las peticiones.

  • @Smileeee_23
    @Smileeee_23 Před 8 měsíci

    Esta es la segunda parte?

  • @alpaca5548
    @alpaca5548 Před měsícem

    Mmm creo que si la api para obtener todas las paginaciones demora más de lo esperado estaría retrasando toda la pagina no?

  • @qbixmex
    @qbixmex Před 8 měsíci +1

    Midu en todos tus videos siempre te levantas para acomodarte, supongo por qué te resbalas en tu asiento de piel.
    Por qué no usas un cojín o cinturón de seguridad 😅

  • @EmmanuelFajardo-js8ec
    @EmmanuelFajardo-js8ec Před 8 měsíci +1

    midu que recomiendas con next , redux o redux toolkit

    • @DaPaBe1999
      @DaPaBe1999 Před 8 měsíci

      Más que recomendación, usa lo que realmente necesites para tu proyecto segun el "scope", que tan grande sea tu app, si necesitas un estado global y necesitas conectar y mantener estados toolkit es lo mejor incluso por la doc oficial, si necesitas comparaciones: El context de react para un estado mas cerrado, toolkit para una app mediana, zustand para apps chicas/medianas. Si es muuy grande con muchos estados que tengas que mantener seria mejor optar por otras cosas

    • @EmmanuelFajardo-js8ec
      @EmmanuelFajardo-js8ec Před 8 měsíci

      @@DaPaBe1999 muchas gracia spor tu respuesta pero no lo pienso tanto para un proyecto mio si no para conseguir trabajo, pues el context de react si ya lo manejo solo que aun no tengo tan claro cual aprender para apps medianas y grandes para conseguir trabajo

    • @EmmanuelFajardo-js8ec
      @EmmanuelFajardo-js8ec Před 8 měsíci

      y en ese caso de que sea muy grande que otras cosas se podrian optar

  • @macoacero
    @macoacero Před 5 měsíci

    AYUDAAAAAAA!!!!!! Estoy intentanto usar Next 14 pero no me renderiza los cambios por ejemplo un fetch ni siquiera un console.log (en windows 11 ni en WSL) No sé que puede ser 😭😭😭😭

  • @juanferrer5885
    @juanferrer5885 Před 8 měsíci

    Si utilizamos el estado en la url, estamos rerenderizando toda la pagina, es eso optimo?

    • @midulive
      @midulive  Před 8 měsíci +2

      El tema es que no re renderizamos toda la página. Lo explicamos en el primer vídeo del curso.

  • @OswaldoTovar32
    @OswaldoTovar32 Před 8 měsíci

    Helllooo

  • @Jesopa-uk9vr
    @Jesopa-uk9vr Před 8 měsíci

    como certifico que aprendí next14 con midudev? lo quiero subir a mi cv 🤣

  • @franchinna
    @franchinna Před 6 měsíci +1

    hola midu!!! va a seguir esto?!

  • @AteneoClub
    @AteneoClub Před 8 měsíci

    Server actions deja mucha informacion a los hackers ya que la data se pasa por URL, el cual se rastrea en toda la red y los Apaches o IIS (deben ir por body)

    • @midulive
      @midulive  Před 8 měsíci +2

      Los Server Actions pasan la info por POST en el body.

  • @albertoprieto522
    @albertoprieto522 Před 7 měsíci

    Me hubiera gustado ver como maneja los errores del Zod :(

  • @alexander-adp
    @alexander-adp Před 8 měsíci +1

    necesitamos un curso de angular específicamente angular 17 POR FAVOR #midulive

  • @aljaleo
    @aljaleo Před 6 měsíci

    Deberían hacerte ministro de programación che

  • @miikuru002
    @miikuru002 Před 8 měsíci +4

    Grande midu, en español nadie explica mejor que él 🫡

  • @Herongozo54
    @Herongozo54 Před 8 měsíci

    hey Midu como se llama la extension que usas para el console log en VSCode?

  • @ericklozano1581
    @ericklozano1581 Před měsícem

    Y la autentificación en la siguiente clase ? 😩

  • @nihil_um
    @nihil_um Před 4 měsíci

    ¿Alguien sabe si Midudev tiene algún video donde explique como cachear una búsqueda ya realizada y evitar hacer peticiones repetidas de búsqueda en el servidor?. O si alguien sabe de algún otro tutorial que haya por ahí, también me valdría.

    • @gabrielm4979
      @gabrielm4979 Před 4 měsíci +1

      En la documentación del tutorial, en los primeros capítulos se explica y se indica que hay que colocar antes de cada función fetch un noStore(); Esto para que no cachee la información, porque básicamente no interesa, no tiene sentido cachearla si es un proyecto tan dinámico y con datos volátiles como un dashboard. Pero si por algun motivo quisieras hacer lo contrario, supongo que quitando ese método (porque repito, se puso a propósito) estaría resuelto.

    • @nihil_um
      @nihil_um Před 4 měsíci

      @@gabrielm4979A qué te refieres con "la documentación del tutorial"?. Dónde encuentro eso?.
      Por si no me expliqué bien en mi anterior pregunta. Lo que quiero es que no haga una petición nueva al servidor si el usuario hace la misma búsqueda.

    • @nihil_um
      @nihil_um Před 4 měsíci

      ​@@gabrielm4979 Lo que yo necesito es cachear la función de búsqueda de manera que no vuelva a hacer la misma búsqueda si ya se hizo previamente. No sé a qué te refieres con eso de "en la documentación del tutorial"

    • @gabrielm4979
      @gabrielm4979 Před 4 měsíci +1

      @@nihil_um me refiero a que este proyecto del video está basado en el tutorial de la documentación oficial de next js. Si te fijas al principio del video dice que hay un vídeo antes, dónde iba con pijama blanco. Este es la continuación de ese vídeo. Para entender de lo que hablo tienes que ver primero aquel vídeo. Midu está haciendo este proyecto basado en un tutorial de NextJs de su documentación oficial.

    • @nihil_um
      @nihil_um Před 4 měsíci

      @@gabrielm4979 Ah, vale, sí. Ahora te entiendo. Sí, vi también el otro vídeo. Pues nada, tendré que echarle un vistazo a eso. Gracias.

  • @hawkapparel
    @hawkapparel Před 6 měsíci

    y donde esta el codigo fuente??, algun link de github?? xd

  • @nico-nsm
    @nico-nsm Před 8 měsíci

    Los Server Actions se siguen prestando para estar en capas de modelos (lo uso así con Prisma) pero puede descompaginar proyectos, lo veo como que Vercel quiso hacer eso para el que programa de entre casa digamos, que aprende React se frustra ve eso y dice wow más simple... Pero no lo veo provechoso para proyectos grandes o con un buen tiempo de existencia, le da facilidad pero le quita versatilidad.