Sam Selikoff: Improving developer and user experience with nested layouts in Next.js

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 พ.ย. 2024

ความคิดเห็น • 151

  • @alfonsocartes
    @alfonsocartes 2 ปีที่แล้ว +63

    So many concepts understood in one video. Awesome! Thank you Sam

    • @sma1015
      @sma1015 ปีที่แล้ว +1

      and in just 23minutes... damn

  • @DivjotSingh
    @DivjotSingh 2 ปีที่แล้ว +36

    Sam is a great educator. He paces his talks/videos quite nicely like a melody. You get introduced to a simple API, then a problem, then a natural solution that intuitively makes sense, then some fun with it, and then a great climax to what you just learnt.

    • @swyxTV
      @swyxTV 2 ปีที่แล้ว +8

      are we still talking about youtube videos or

    • @DivjotSingh
      @DivjotSingh 2 ปีที่แล้ว

      @@swyxTV _sorry children_

  • @gagamil
    @gagamil 2 ปีที่แล้ว +4

    Having built only a small number of frontend mvp apps I really appreciate that the new next hits all the common dev concerns that even I have run upon. So convenient.

  • @im-a-trailblazer
    @im-a-trailblazer ปีที่แล้ว

    It's an absolute joy to learn a framework this way.

  • @MrKeepItTrill
    @MrKeepItTrill 2 ปีที่แล้ว +7

    Wow I can't believe you can hold space to move the MacOS screenshot selection!!! This has changed my life.
    Great explanation of /app as well :)

    • @itsbrex
      @itsbrex 2 ปีที่แล้ว

      I never knew you could do that either lol

  • @DMZT_dhruv
    @DMZT_dhruv 7 หลายเดือนก่อน

    Hey bro this is the best tutorial of nested layout I have ever seen, your way of explaining is just so good loved this video!!

  • @ichibanfuego
    @ichibanfuego 2 ปีที่แล้ว +72

    am i watching a vscode masterclass or a layouts demo

  • @hemanthkotagiri8865
    @hemanthkotagiri8865 2 ปีที่แล้ว +3

    I didn't even notice 23 minutes have gone by. Thank you for this awesome release Vercel! Can't wait to get my hands dirty!

  • @jugalkumarseth7675
    @jugalkumarseth7675 2 ปีที่แล้ว

    I was to start a new project downloaded next-12 yesterday Now switching to next-13. Very well explained video Thanks Sam.

  • @kenny7385
    @kenny7385 2 ปีที่แล้ว +3

    woah cool to see Bradley Cooper giving explanations about next 13 🙏

  • @emalorenzo2415
    @emalorenzo2415 2 ปีที่แล้ว +1

    Such a great talk! Thanks Sam, can't imagine making this content easier to understand

  • @TomHermans
    @TomHermans ปีที่แล้ว

    Great video Sam. A lot of concepts inside one video and hands-on examples. congratz

  • @shift-happens
    @shift-happens 2 ปีที่แล้ว

    The segment from useSelectedLayoutSegment is just awesome :)

  • @alsherifkhalaf7385
    @alsherifkhalaf7385 2 ปีที่แล้ว

    I am happy to watch you on Vercel channel.

  • @ginger-viking
    @ginger-viking ปีที่แล้ว

    Love Sam's teaching style

  • @synt-x6458
    @synt-x6458 2 ปีที่แล้ว

    well explained. anyone else excited by these new features?

  • @hakkasama8807
    @hakkasama8807 2 ปีที่แล้ว +1

    I think I've watched this video almost 5 even the 2 stages of the conference, it was awesome tbh! Thanks to the full team, amazing work here!

  • @jordondax
    @jordondax 2 ปีที่แล้ว +3

    You were an awesome presenter, thanks enjoyed the video.

  • @Mitsunee_
    @Mitsunee_ 2 ปีที่แล้ว +1

    Yeah, I went from "dunno if I'll get this to work" to already thinking ahead to migrating my blog as a test project. Gonna wait for the docs to be updated and current projects to get finished and give it a try :)

  • @drakongames5417
    @drakongames5417 ปีที่แล้ว

    just wow video. so many good things I learnt from just a single video. great way to teach

  • @juanmanuelamato511
    @juanmanuelamato511 2 ปีที่แล้ว

    Wonderful way to explain. Next 13 has many features that reduced the doubts I had to understand ssr or csr. Thank you very much!

  • @omkarkulkarni3644
    @omkarkulkarni3644 2 ปีที่แล้ว +1

    Very professional and crisp. Thanks SAM!

  • @MrBrandenS
    @MrBrandenS 2 ปีที่แล้ว +2

    Always enjoy your great videos Sam! You are an amazing teacher. I'm sure you get a bit of smirk on your face how similar this feels to Ember land with even more flexibility to take things further with the server side and client side paradigms which are awesome. I'll definitely be giving the new layout stuff a try this week.

    • @samselikoff
      @samselikoff 2 ปีที่แล้ว

      You got it! Love seeing more and more of the best patterns making their way into Next.js 🙂

  • @_peterferguson
    @_peterferguson 2 ปีที่แล้ว

    Easily the best conf talk ... nicely done!

  • @larrydevops
    @larrydevops 2 ปีที่แล้ว

    Wow, the new features seem amazing...Thank you

  • @soymartiinez
    @soymartiinez 2 ปีที่แล้ว

    WOW that was a quick but very concrete explanation, thank you.

  • @senkasim
    @senkasim 2 ปีที่แล้ว

    Thank you for the clear explanation. I can't wait to use nextjs 13 in my new projects.

  • @sturmenta
    @sturmenta 2 ปีที่แล้ว +1

    so well explained and enjoyable to watch🔥

  • @questionyourbeliefs
    @questionyourbeliefs 2 ปีที่แล้ว

    This video is absolutely amazing.

  • @drakongames5417
    @drakongames5417 11 หลายเดือนก่อน +1

    how are you using those commands(11:41) without going to network tab. whats the shortcut bring out run and enter command there

  • @eliuddyn
    @eliuddyn 2 ปีที่แล้ว +1

    Amazing explanation 🔥🔥 Nextjs forever 🔥🔥

  • @vitriowibisono2875
    @vitriowibisono2875 2 ปีที่แล้ว

    Very clear and informative video. I would like too see more examples

  • @tericcabrel
    @tericcabrel 2 ปีที่แล้ว

    Wow! This video is excellent! Layout was daunting to me until I watched this video. That is very well explained! Thank you so much

  • @indianappguy
    @indianappguy 2 ปีที่แล้ว +1

    please share the github link to this project so we can see the version of different package i am stuck

  • @quantumrim3805
    @quantumrim3805 ปีที่แล้ว

    Thank you for such a valuable video 👏

  • @henriquematias1986
    @henriquematias1986 ปีที่แล้ว +1

    Would be great to see useSWR running on top of those statically rendered pages! So new data could be loaded at runtime. Also the server side code to be updated from time to time

  • @jbjiostore626
    @jbjiostore626 ปีที่แล้ว +1

    I am facing trouble when using redux with next js app directory

  • @prabeshregmi3372
    @prabeshregmi3372 2 ปีที่แล้ว +1

    Sam Selikoff: Improving learning experience

  • @ifeanachofavour409
    @ifeanachofavour409 ปีที่แล้ว

    This is awesome stuff you guys have done.
    Just a question for Sam concerning layout.
    How do I create protected layouts, such that, the layout at the root level of my project doesn't show on a protected page/route(using middleware for protected routes).
    Looking forward to a reply. Thanks

  • @pavankjadda
    @pavankjadda 2 ปีที่แล้ว

    Great video. Explained new concepts like piece of cake :)

  • @songokussj4cz
    @songokussj4cz 2 ปีที่แล้ว +1

    So goood! Such learn... 🙂 Maybe a stupid question though. 22:30 - what if I change something in my DB, for example year of LoTR from 2001 to 2002. Will this update or I have to rebuild the next.js app again (or if I add a new movie)

  • @basics-school
    @basics-school ปีที่แล้ว

    so much details in this talk but while I use segment it with group route i get the segment as (auth) like this so how can i set the active state in this scenerio

  • @wchorski
    @wchorski ปีที่แล้ว

    Is there a difference for using useSelectedLayoutSegment vs useRouter and reading the url?

  • @luisllaboj
    @luisllaboj ปีที่แล้ว

    How can I open that little window at the top when you select something you wanna wrap in the JSX?

  • @BarisPalabiyik
    @BarisPalabiyik 2 ปีที่แล้ว +1

    This talk was great, I wish they showed how to do mutations(post reqs) as well with the server components, because when you go client side for interactivity you lost the backend capabilities.

  • @danielf4438
    @danielf4438 ปีที่แล้ว

    Very good video, the pacing is perfect. How can I setup the hot reload you are using, the get instant feedback on localhost?

  • @fram007
    @fram007 2 ปีที่แล้ว +4

    Hi, Sam two issues:
    1. when I use in nav-link.tsx: "let segment = useSelectedLayoutSegment();" I get " No selected layout segment below the current level"
    2. When i use "import { experimental_use as use } from "react";" I get "react__WEBPACK_IMPORTED_MODULE_1__.experimental_use) is not a function"

    • @samselikoff
      @samselikoff 2 ปีที่แล้ว +2

      Any chance you can share a reproduction? I'd be happy to take a look!

    • @ray-lee
      @ray-lee 2 ปีที่แล้ว +2

      you can just import use with "import { use } from "react"

    • @fram007
      @fram007 2 ปีที่แล้ว

      @@ray-lee tk! this solve the second problem!

    • @9662Mario
      @9662Mario 2 ปีที่แล้ว

      For the first issue, like at me, the error presents when "segment" in on "/". If you look at /movies it work fine.

    • @killerdroid99
      @killerdroid99 2 ปีที่แล้ว

      I am having the exact same issue

  • @minnow1337
    @minnow1337 2 ปีที่แล้ว

    Love the new routing system, migrate api routing too pls 🙏

  • @AhmadAbdulSamad
    @AhmadAbdulSamad 11 หลายเดือนก่อน

    liked the start music

  • @neil_from_future
    @neil_from_future 2 ปีที่แล้ว

    Anyone know how to use UI Components for app folder new version ?

  • @strato1986
    @strato1986 2 ปีที่แล้ว +1

    This is great but im wondering how to bring back the context tree from _app.tsx (for ui and auth providers)

    • @strato1986
      @strato1986 2 ปีที่แล้ว +3

      @@jeremytenjo great! Thank you very much for taking the time to answer

  • @hakuna_matata_hakuna
    @hakuna_matata_hakuna ปีที่แล้ว

    loading page is cute but a progress bar on the top is better , youtube , github it just looks so good without subjecting people to page wide loading spinners

  • @Infante1979
    @Infante1979 ปีที่แล้ว

    So helpful thank you so much

  • @igrb
    @igrb 2 ปีที่แล้ว

    Banger as always

  • @thrivingcreator
    @thrivingcreator ปีที่แล้ว

    Question: Around 6:45, after you get the client-component setup (via 'use client') we see that the console.log(href) prints each route *twice* in the Chrome dev tools for each page refresh. Why twice?

    • @devjunioralves
      @devjunioralves ปีที่แล้ว

      This is because React 18, with strict mode enable.

  • @rammehar5531
    @rammehar5531 2 ปีที่แล้ว

    I the love the way you are explain things, great. pls also explain with auth and global state.

  • @harelpanker
    @harelpanker 2 ปีที่แล้ว

    Thanks! very nice explanation (as always)...

  • @swyxTV
    @swyxTV 2 ปีที่แล้ว +1

    great talk Sam!

  • @lutif1415
    @lutif1415 2 ปีที่แล้ว

    awesome video. qq: why not const for all those variable you are never going to update, why use let?

  • @eyotajr
    @eyotajr ปีที่แล้ว

    generatestaticparams what happen if from the api the content has been updated ?

  • @warofsigmar34000
    @warofsigmar34000 2 ปีที่แล้ว

    Holy cow ! Awesome thx for the video

  • @labnol
    @labnol ปีที่แล้ว

    This is very useful.

  • @othmaneaoubid6896
    @othmaneaoubid6896 2 ปีที่แล้ว +1

    useSelectedLayoutSegment not working :p

  • @raajnadar
    @raajnadar ปีที่แล้ว

    App layout is stable in Next Js 13.4

  • @manoj-k
    @manoj-k 2 ปีที่แล้ว

    My favourite man is here

  • @BrianRAmolo
    @BrianRAmolo ปีที่แล้ว

    Great video !

  • @mayank1513
    @mayank1513 2 ปีที่แล้ว

    Hey hi.
    What shortcuts u used for changing the throttling

    • @samselikoff
      @samselikoff 2 ปีที่แล้ว

      Sorry what do you mean by throttling?

    • @mayank1513
      @mayank1513 2 ปีที่แล้ว

      @@samselikoff Network speed throttling/reducing

    • @samselikoff
      @samselikoff ปีที่แล้ว

      @@mayank1513 Ah!  + Shift + P to bring up the command palette, then "Go online", "Enable fast 3G throttling", and "Enable slow 3G throttling".

  • @gustavomonteiro2087
    @gustavomonteiro2087 2 ปีที่แล้ว

    Sam is the best!

  • @majidtaei4251
    @majidtaei4251 ปีที่แล้ว

    Hello, can you update this tutorial...it has changed now

  • @notshbn
    @notshbn 2 ปีที่แล้ว

    I’ve been looking for this

  • @TrackingAcademy
    @TrackingAcademy 2 ปีที่แล้ว

    Ou, great thing! I tried using the same files, and experimental_use is throwing an error as its not a function of react on movies/page.js

    • @amarkwong6221
      @amarkwong6221 2 ปีที่แล้ว

      Same issue, change the react version in package.json to "experimental", but still fail

    • @amarkwong6221
      @amarkwong6221 2 ปีที่แล้ว

      I think it is due to the fact I was using typescript and the @types/react is not exporting this hook.

  • @ahmedabbas3981
    @ahmedabbas3981 ปีที่แล้ว

    Pls share the git hub link of that code.

  • @codex6634
    @codex6634 2 ปีที่แล้ว

    Sam, thanks for you great presentation. Could you share this example with us?

  • @inasuma8180
    @inasuma8180 2 ปีที่แล้ว

    anyone else weirded out by how many rerenders happen on the client when navigating between pages. monka

  • @mdmathewdc
    @mdmathewdc 2 ปีที่แล้ว +1

    I think this video is a bit outdated, we can simply use await inside a Server component, use hook is only required in Client components.

  • @amirnoorani5017
    @amirnoorani5017 ปีที่แล้ว

    Sam is awesome

  • @freespeech515
    @freespeech515 2 ปีที่แล้ว

    i am new. how do you get browser window in visual code

    • @lmlTimolml
      @lmlTimolml ปีที่แล้ว

      It's not really in VS-Code, its just sorted on left/right side on the monitor Ithink :)

  • @RandomMcLain
    @RandomMcLain 2 ปีที่แล้ว

    How is the Loading component being used while fetching? NextJs picked it up automatically?

    • @kakun7238
      @kakun7238 2 ปีที่แล้ว +1

      yes

    • @ayoubahabchane
      @ayoubahabchane ปีที่แล้ว +1

      "loading" is a special file name that NextJs recognizes. If you supply nextJs with a file named "loading" inside a certain folder/segment, NextJs will use that file/component as the loading placeholder for that particular segment.

  • @sK4hsCz
    @sK4hsCz ปีที่แล้ว

    Is someone else getting false on index route "/"?

  • @laughAFrame
    @laughAFrame ปีที่แล้ว

    Found nextjs.13 very buggy with MUI cos it took to much time to compile things and is using to many modules on compilation.

  • @anhvuuc8693
    @anhvuuc8693 2 ปีที่แล้ว

    Please do more video Thank you

  • @gabrielrock
    @gabrielrock 2 ปีที่แล้ว +1

    really good video

  • @ThugLifeModafocah
    @ThugLifeModafocah 2 ปีที่แล้ว

    I'm here for the third time watching this. Everytime I had different feelings about it. First I was amazed, then I got worried, now I'm not so sure. Like, it was your responsibility to know how/when/where in the flow you should call a loader, now it is like magic... It can just bind you too much to the tool making you not much interchangeable to others tools and the market. I don't know, maybe I'm talking 🐄💩 but as awesome these changes are, they seems dangerous too.

  • @mistertemplate9196
    @mistertemplate9196 2 ปีที่แล้ว

    what about api folder? Will it be supported also in the future?

    • @neociber24
      @neociber24 2 ปีที่แล้ว

      It didn't go away, you can use it as always

    • @khashe
      @khashe 2 ปีที่แล้ว

      Will be supported in the future when they find a good solution for it they said.

  • @HarshDivecha_FTR
    @HarshDivecha_FTR ปีที่แล้ว

    AMAZING !!!

  • @joaobibiano
    @joaobibiano 2 ปีที่แล้ว

    Why the server was hitted so many times during the build ? Is this a bug?

    • @samselikoff
      @samselikoff 2 ปีที่แล้ว

      This was due to me using an early version of Next 13 when coding the demo

  • @AuxiliaryOfficial
    @AuxiliaryOfficial 2 ปีที่แล้ว

    i think i still like the old way

  • @JasonChannelOne
    @JasonChannelOne 2 ปีที่แล้ว

    Fantastic!

  • @orangeclayproductions160
    @orangeclayproductions160 2 ปีที่แล้ว

    Noob here. Where are your .next and node_modules folders? My project looks nothing like this to start

    • @samselikoff
      @samselikoff 2 ปีที่แล้ว

      I use the Files: Exclude setting in VSCode to ignore everything in my .gitignore file from the tree explorer.

  • @binusegoogle
    @binusegoogle 2 ปีที่แล้ว

    Need typescript ver 😢 But helpful content anyway. Thank you very much 🥰🥰

    • @neociber24
      @neociber24 2 ปีที่แล้ว +3

      It's a really simple example, I don't think you need to worry about TS, it doesn't change that much

  • @eyotajr
    @eyotajr 2 ปีที่แล้ว

    11:41 how to do that ?

    • @samselikoff
      @samselikoff 2 ปีที่แล้ว

      +Shift+P to bring up the DevTools command palette

  • @uziboozy4540
    @uziboozy4540 2 ปีที่แล้ว

    Mom: we have Remix at home
    Remix at home: Next 13

  • @ogunmokunademola7292
    @ogunmokunademola7292 2 ปีที่แล้ว

    This is cool. Do you have a personal TH-cam channel. I love how you explain stuffs

  • @creatorsremose
    @creatorsremose 2 ปีที่แล้ว

    Really great developments, thank you! Though I am a little concerned about how hideous was that "loading" flicker every time you navigated to Movies. It's fine when you land on that page, but navigating to it (for my standards, at least) will require a much more elegant solution than that.

    • @CoryTheSimmons
      @CoryTheSimmons 2 ปีที่แล้ว +4

      Simple enough. Have the loading component return null unless it's been 200ms or something, in which case, show a skeleton loader. That way you're not flashing it for every little thing, but when things actually are taking 1s+ to load, people will get some sort of feedback.

  • @whoIsDeck
    @whoIsDeck 2 ปีที่แล้ว

    That's Sam!

  • @anuroop748
    @anuroop748 2 ปีที่แล้ว

    excellent !!!

  • @GurpreetSingh-zn1fd
    @GurpreetSingh-zn1fd ปีที่แล้ว

    Super!

  • @milantiwari12
    @milantiwari12 2 ปีที่แล้ว

    Is api folder gone for good?

    • @samselikoff
      @samselikoff 2 ปีที่แล้ว

      Nope but it's not supported under /app yet. They're working on it but for now you can still use /pages/api.

  • @mastan419
    @mastan419 2 ปีที่แล้ว

  • @ashutoshsingh8867
    @ashutoshsingh8867 2 ปีที่แล้ว

    Awesome❤