Practical Svelte 5 - Shopping Cart

Поделиться
HTML-код
  • Опубликовано: 2 окт 2024

Комментарии • 131

  • @readywhen
    @readywhen 3 месяца назад +48

    I started web dev with svelte (after no code and vanilla). I loved it. Now I've been working with react for a while. Now I love svelte even more!

    • @andrewthomas3947
      @andrewthomas3947 3 месяца назад +2

      Same journey. But doesn't tried react.

    • @codingwithjamal
      @codingwithjamal 3 месяца назад +3

      i love svelte. it feels like normal html but with super powers

    • @Snozcumber
      @Snozcumber 3 месяца назад +9

      Svelte is heavenly. React is a nightmare

  • @MadeInJack
    @MadeInJack 3 месяца назад +24

    Can't wait for more Svelte 5 videos 😄
    Maybe a full series with best practices to build, organize and manage large codebases?

  • @JoyofCodeDev
    @JoyofCodeDev 3 месяца назад +37

    let's go 👏

  • @TheHermitHacker
    @TheHermitHacker 3 месяца назад +14

    This is crazy good. This opened my eyes to Svelte 5's runes. Thank you. (Yes, make more videos, please)

  • @ridass.7137
    @ridass.7137 3 месяца назад +12

    17:43 I think if there is a separate remove button, the decrease button should always be disabled and not remove the item when the current item quantity is 1. This would also prevent accidental removal of the item if, for example, you have added too many and then spam the decrease button to reduce the quantity, failing to stop at 1.

    • @Huntabyte
      @Huntabyte  3 месяца назад +1

      Yeah I think I agree with you there from a UX perspective in retrospect!

    • @devbyveritech
      @devbyveritech 3 месяца назад

      ⁠​⁠@@Huntabyteremoving the item from cart when it’s less than 1 is very okay.
      Where I think the decrement button should be disabled is in the checkout page.
      But in the case of cart, it’s okay to remove the product

  • @smallSkrrtBigDreams
    @smallSkrrtBigDreams 3 месяца назад +10

    This was so easy to understand, what a nice introduction to the new Svelte features! And having the examples be part of a larger context and not isolation makes it much easier to follow along. I've watched a lot of your videos, you are literally the reason I decided to learn Svelte, so thanks a bunch for all your work.

    • @Huntabyte
      @Huntabyte  3 месяца назад +1

      Thanks for the kind words! Happy to hear that this was easy to understand!

  • @codewithguillaume
    @codewithguillaume 3 месяца назад +3

    Ahhhhh feels good to see you again Hunter !

  • @francoisbouchet9907
    @francoisbouchet9907 3 месяца назад

    Iam always struggling to understand documentations, so practical is the only way I manage to learn code..., this video is very helpful to onboard Svelte5 and runes subtleties... don't hesitate to publish some more! thanks!
    --
    NB: I particularly like that you let the usual "errors / mistakes" happening on the go.... many youtubers edit them out, but they then lack an opportunity to explain what can go wrong and make us rethink our bad habits.

    • @Huntabyte
      @Huntabyte  3 месяца назад +1

      I'm glad to hear that you found this useful! Will continue to publish more!

  • @adriablancafort
    @adriablancafort 3 месяца назад +2

    Amazing video as always! I really love your content.
    I've noticed there isn't a good video explaining all the i18n options for sveltekit available and comparing them. It could be a good idea for a future video and I'm sure that your audience would be very interested to see it.

  • @RicardoCamisa
    @RicardoCamisa 3 месяца назад +6

    Svelte 5 is crazy good!

    • @Huntabyte
      @Huntabyte  3 месяца назад +1

      Right?! I feel this weird excitement when writing it and it just feels so natural already!

  • @AndreaBarghigiani
    @AndreaBarghigiani 12 часов назад

    Great video man! Please keep up with real use cases video as this one. Also, I love your livestreams as well but since them are just a your stream of thoughts could I ask if you'll be able to extract the juicy parts from them and make shorter video?
    Tbh it could just be a cut-and-republish kinda of approach, you don't need to re-record the concept, just share it 😅

  • @alittlegreyhair1104
    @alittlegreyhair1104 3 месяца назад

    A really useful video, thank you.
    In the first part I found all that tailwind markup confusing the picture where the SV-5 action was happening.
    'Looking forward to learning more from you.

    • @Huntabyte
      @Huntabyte  3 месяца назад +1

      You're welcome, and thanks for the feedback! I forgot to zoom in a bit on the code which caused more of the clutter to be in the way. In the next installment I've cleaned it up a bit and made the code a big bigger.

    • @alittlegreyhair1104
      @alittlegreyhair1104 3 месяца назад

      @@Huntabyte Look forward to it :)

  • @MM-uf6kt
    @MM-uf6kt 3 месяца назад +2

    This would be a great series!

  • @riigel
    @riigel 3 месяца назад +5

    more videos like this!

  • @BhideSvelte
    @BhideSvelte 3 месяца назад +1

    Two Ways To Mutate
    1. only owner can mutate the array, obj in Main component
    2. if childs want to mutate they should use bindable ..new concept..
    or else
    just pass the function to child component ...every main logic stays in Main Component and you can mutate
    good one Thankss

  • @pasokoner
    @pasokoner 3 месяца назад +15

    13:45 This technique alone makes the video worth watching

    • @roycrippen9617
      @roycrippen9617 3 месяца назад +1

      Definitely. This week I started transitioning the codebase at work to svelte5 and I ran into this exact issue. It took me like 30 minutes to figure out how to fix it. I wish I had seen this video before I stumbled on that problem.

    • @bloozy85
      @bloozy85 3 месяца назад +1

      I like svelte, but js frameworks time running out soon, it's obvious. Too much stuff going on and actually all of them seem to go into same direction and do the same stuff under the hood with different syntax and compilers. It's so nice to work with web components and JSDoc, and everything runs out of the box and natively. Just push your build on your webspace ... boom! No need for fancy serverless build & deploy services.
      What i actually really like tho, is a wordpress backend with a vanilla stack frontend. It so dead simple and works for most small and mid sized businesses.

    • @silvankuebler
      @silvankuebler 3 месяца назад

      not really a technique but just a widely used convention also e.g. very loved in the python communtiy

  • @benjaminjameswaller
    @benjaminjameswaller 3 месяца назад +2

    Love this tutorial on Svelte 5. Please do more to expand on these new concepts and in this shopping cart ui. Also I noticed you might want to cover the situation where when you added the same item more than once, the cart got a duplicate entry = it didn't just add one item with a count of two it added the same item on as separate entry.

  • @MikeHTMLAllTheThings
    @MikeHTMLAllTheThings 3 месяца назад +5

    I actually love the idea of having the basic layout structure in place and then allowing others to try it however they like or follow along. Cool way to handle a tutorial.

    • @Huntabyte
      @Huntabyte  3 месяца назад +1

      I'm glad to hear that! Was very curious how it would be received, so far, so good!

    • @MadeInJack
      @MadeInJack 3 месяца назад

      +1

  • @vexkiddy
    @vexkiddy 3 месяца назад +1

    Great video Hunter!

  • @jmoo4457
    @jmoo4457 3 месяца назад

    I think this is a great overview of Svelte 5 runes, but in a real practical application, i would try to divide up the shopping cart logic (add, remove, etc.) into its own so that the logic does not live at UI component levels. Would be cool if you can cover a video on abstracting state and its logic in Svelte something like React's custom hooks so that the logic could be used like `const { add, remove, modify } = $cart` abstracted into its own module.

    • @Huntabyte
      @Huntabyte  3 месяца назад

      Yeah I already have one queued that covers just that 😁

  • @henoknigatu7121
    @henoknigatu7121 3 месяца назад +1

    Hi ,
    I really enjoy your SvelteKit tutorials! I was wondering if you could create a more comprehensive tutorial that covers most of SvelteKit's features in an integrated manner. Many tutorials out there are quite discrete and don't show how to use various features together. It would be incredibly helpful to see a full-fledged example with best practices and advice on how to structure a project. Thanks for considering this, and keep up the great work!

  • @d4yno
    @d4yno 3 месяца назад

    Absolutetly awesome in depth tutorial.

    • @Huntabyte
      @Huntabyte  3 месяца назад

      Thanks for the kind words!

  • @gageracer
    @gageracer 3 месяца назад +2

    Not only I liked the video, this could be a great practive/quiz website "make this page reactive with svelte/solid/react". I love programming as if it's a puzzle.

  • @Terr590
    @Terr590 3 месяца назад

    Love the practical approach in this video, thanks!

    • @Huntabyte
      @Huntabyte  3 месяца назад

      Glad to hear it! These videos are much more enjoyable to make!

  • @AB-gx5zj
    @AB-gx5zj 3 месяца назад +2

    Nice video (more on S5 please)!

  • @WLockIV
    @WLockIV 3 месяца назад +1

    Is it just me or is the derived update more intelligent now? I feel like old derived would have triggered an update each time anyway. Thanks for the video!

  • @robimalco
    @robimalco 3 месяца назад

    mind blowing expertise

  • @joshua.hintze
    @joshua.hintze 3 месяца назад +1

    Nice video. I would love to know of other good cases to use an effect. Thanks!

  • @memestagestartup
    @memestagestartup 3 месяца назад +2

    been waiting for your new vids to drop...🥳🥳

    • @Huntabyte
      @Huntabyte  3 месяца назад

      Me too! Took me a while to realize these videos won’t great themselves! 😂

  • @KevinMacKenzie61
    @KevinMacKenzie61 3 месяца назад

    Fantastic video. Thanks!

    • @Huntabyte
      @Huntabyte  3 месяца назад +1

      Thank you, Kevin! Appreciate you being a member for almost 1.5 years now, means a ton!

    • @KevinMacKenzie61
      @KevinMacKenzie61 3 месяца назад

      @@Huntabyte While I appreciate you thanking me for being a member, I wish I could actually pay you what you have taught me is worth. While there are other great teachers on RUclips, no one helps me grasp things like you do.

  • @zsmain
    @zsmain 3 месяца назад +1

    This was very informative, looking forward for similar videos.

    • @Huntabyte
      @Huntabyte  3 месяца назад +1

      Awesome to hear! Looking forward to making them!

  • @chrismingay6005
    @chrismingay6005 Месяц назад

    I can't say the Svelte 5 features have really impressed me and I didn't get why I would need $effect. However your demo of it is fantastic, I'll have plenty of uses for it.

  • @anuragsingh-ts3nb
    @anuragsingh-ts3nb Месяц назад

    @huntabye its great how u explained the concept, was struck in a issue what iff, on scroll i have to load more products how that can be handled if you can provide a snippet of a way to go, as currently the data is loaded from a API endpoint in page.ts load function

  • @omargarcia7900
    @omargarcia7900 2 месяца назад

    Can you do a few videos on Keras and TensorFlow, please? :) Great content on your channel from what I've seen so far!

  • @VeriousSmithIII
    @VeriousSmithIII 3 месяца назад +1

    I'm just getting into building Javascript Apps because of Svelte. Been a WordPress dev most of my professional life. This video was helpful. Thanks for sharing. Looking forward to more!

    • @Huntabyte
      @Huntabyte  3 месяца назад +1

      Glad it was helpful! More on the way!

  • @lemnisk8
    @lemnisk8 3 месяца назад

    Thank you.... Please make more of such videos...

  • @paulclarke4099
    @paulclarke4099 3 месяца назад +2

    Would love you to show the best approach to handle state in a Svelte5/SvelteKit multi user application so that state is completely isolated for each user since Stores alone are not the proper approach when using SvelteKit, using Context API or whatever is the best way to do this. No videos seem to show the best way to do this (you did touch on it in an earlier video) but I would like to see it in more detail with very clear explanations of why to do it that way. Your videos a really great and you have the ability to clearly and succinctly explain things 💯😃👍

    • @Huntabyte
      @Huntabyte  3 месяца назад +2

      Thanks for the kind words! That’s absolutely something I can do!

    • @pfcycletechnology7064
      @pfcycletechnology7064 2 месяца назад

      What a great idea. I struggle with that in sveltekit too. If there's someone who could/should get the credit for creating such an informative sveltekit tutorial, it should be here on this channel.

    • @pfcycletechnology7064
      @pfcycletechnology7064 2 месяца назад +1

      @@Huntabyte Just a suggestion. Moving this shopping cart into a sveltekit project and add user authentication so each cart belongs to a user. That would be informative. So leave this project as is, with svelte5 and start another project in sveltekit with shopping cart and user authentication. Doable? ;)

  • @St0rMsk
    @St0rMsk Месяц назад

    Don't know man, the more I work with svelte, the I like Vue

  • @SaidElnaffar
    @SaidElnaffar 3 месяца назад +2

    Liked and Subscribed for sure.

  • @aawnu
    @aawnu 3 месяца назад +1

    Great video that perfectly introduces the new runes and workarounds. Learned a lot, thanks!

    • @Huntabyte
      @Huntabyte  3 месяца назад

      I'm glad to hear that, thanks for the feedback!

  • @bnjmn7779
    @bnjmn7779 3 месяца назад

    Would be interested to see how to connect this to a backend to save the cart of a user.

  • @deepjyotideb1173
    @deepjyotideb1173 3 месяца назад +1

    How slow exactly is a reducer? Does using it make it visibly slower?

    • @Huntabyte
      @Huntabyte  3 месяца назад +1

      It’s many times slower than a loop. Using it in one single place may not create a noticeable difference, but when it’s used many places it can really add up. So for that reason I try to avoid it!

  • @johnwu8916
    @johnwu8916 3 месяца назад

    This was super helpful. I would love to see a tutorial on how to apply some OOP concepts leveraging runes, like how best to encapsulate all the methods and properties inside the model and be able to import it to support universal reactivity. That might be helpful for supporting larger code bases or complex web apps. Thanks! (PS: I am new to front-end dev, and mostly my experience is writing server and other backend codes, so if there is another path to manage complex relationships between objects in svelte/javascript/typescript, I am all ears 😃)

    • @Huntabyte
      @Huntabyte  3 месяца назад +1

      A video on just that will be uploaded either this weekend or early next week!

  • @herkulano
    @herkulano 3 месяца назад +1

    Thanks!

    • @Huntabyte
      @Huntabyte  3 месяца назад

      Hey thanks a ton for that! I appreciate it!

  • @mikejohneviota9293
    @mikejohneviota9293 3 месяца назад

    Decaprio is programming again

  • @emyralunthomas
    @emyralunthomas 3 месяца назад

    Learned a ton about Svelte 5 from this video - thank you! Would love to see a follow up showing how to filter products by category

    • @Huntabyte
      @Huntabyte  3 месяца назад

      Glad to hear that!

  • @devbyveritech
    @devbyveritech 3 месяца назад

    I love this
    More of it please

  • @Loui3Hunna
    @Loui3Hunna 3 месяца назад

    Great as always! Would very much like to see more Svelte 5 API examples :)

  • @ElGnomistico
    @ElGnomistico 3 месяца назад

    Pleaaaase make more of these

  • @BhideSvelte
    @BhideSvelte 3 месяца назад

    It took sooo long...i was waiting...love from India ☺️☺️

    • @Huntabyte
      @Huntabyte  3 месяца назад +1

      Me too… I just realized these videos won’t create themselves!

  • @kson2659
    @kson2659 3 месяца назад

    Thanks mate!

  • @Add0w
    @Add0w 3 месяца назад

    This is really excellent explanation, thank you.

    • @Huntabyte
      @Huntabyte  3 месяца назад

      This is great feedback! Thank you!

  • @n3x404
    @n3x404 3 месяца назад

    love it 🥰

  • @nevillebrem
    @nevillebrem 3 месяца назад

    what extensions makes your +page.svelte files to folders?

    • @Huntabyte
      @Huntabyte  3 месяца назад +1

      It's not an extension but a VSCode setting! "explorer.fileNesting.patterns". I haven't added these settings to my settings repo just yet, but in the meantime you can search "antfu vscode settings" to find comparable ones.

    • @nevillebrem
      @nevillebrem 3 месяца назад

      @@Huntabyte thanks!

  • @JacobDuenke
    @JacobDuenke 3 месяца назад +2

    Hey, just wondering why do you seem to always use “const” for derived variables, but “let” for state variables?

    • @imho7992
      @imho7992 3 месяца назад

      They’re not editable and they are read only.

    • @JacobDuenke
      @JacobDuenke 3 месяца назад

      @imho I’m familiar with const, just wondering what’s the implications with $derived. The values do change of course, so I would assume you’d need to use let, at least for primitive values. You could get away with const for reference types.

    • @Huntabyte
      @Huntabyte  3 месяца назад +1

      I use const because _i_ can’t update that value, not that it doesn’t ever update. Whereas with $state I can - just a preference!

  • @supercurioTube
    @supercurioTube 3 месяца назад

    That was awesome. I selected Svelte 5 for my next project, for which I haven't started to write the UI yet and seeing your concrete implementation was super informative.

    • @Huntabyte
      @Huntabyte  3 месяца назад +1

      That's awesome to hear! I have some more videos queued up on additional UI and state patterns as well!

  • @HzClan
    @HzClan 3 месяца назад

    Nice video as usual, can't wait to see the filters in action in the next video!

  • @nigelnyakudya2262
    @nigelnyakudya2262 3 месяца назад

    We need a rewrite for morden Saas in svelte 5 brother.

    • @Huntabyte
      @Huntabyte  3 месяца назад

      It's coming man! Svelte 5 is still in RC and Bits UI still has some work to do so it's ready to be added into the course as well 😃

  • @twentxx
    @twentxx 3 месяца назад

    Thank you so much! 🙏 Your videos has very useful practical knowledges.
    Love it

    • @Huntabyte
      @Huntabyte  3 месяца назад

      You’re welcome! Glad you like this format!

  • @RicoGarza00
    @RicoGarza00 Месяц назад

    Svelte 5 is so much more confusing as a beginner.

    • @Huntabyte
      @Huntabyte  Месяц назад

      If you only have Svelte 4 to compare it against, sure it may seem a bit more daunting, but I promise the complexity curve flattens after you learn the basics, where in Svelte 4 it was basically linear where the more complex the UI the more hacks and complexities required in the code.

    • @RicoGarza00
      @RicoGarza00 Месяц назад

      ​@@Huntabyte Good to know, Svelte 4 is where I started so thats probably why it seems overwhelming. I'll be a little more comfortable once its released and I can start working with it. Thanks for all of the amazing videos btw! They've made me feel much more comfortable using Svelte 4

  • @xthesly
    @xthesly 3 месяца назад

    Shouldn’t a cart be managed with sveltekit using session and/or db ?

    • @Huntabyte
      @Huntabyte  3 месяца назад +2

      Of course, but as mentioned in the video, we're focused on the frontend / interactivity rather than the full stack in this video. To integrate it full stack you would just add a few API calls into the mix but the general idea remains the same.

  • @8-P
    @8-P 3 месяца назад

    I enjoy watching your videos, thanks alot for this :)

    • @Huntabyte
      @Huntabyte  3 месяца назад +1

      I appreciate the kind words! Happy to do it!

  • @АлександрПирогов-б7ф
    @АлександрПирогов-б7ф 3 месяца назад

    great stuff
    looking forward to seeing more videos on svelte 5

    • @Huntabyte
      @Huntabyte  3 месяца назад

      Glad to hear it! Looking forward to delivering more!

  • @mikeeomega
    @mikeeomega 3 месяца назад +2

    What a great demo of Svelte 5 powers

    • @Huntabyte
      @Huntabyte  3 месяца назад

      Thank you! I’m glad you think so!

  • @Nukhtarov
    @Nukhtarov 3 месяца назад

    I liked it. Would love to see more like this. Thank you Hunter

  • @vinseixas5662
    @vinseixas5662 3 месяца назад +1

    I'm new to Svelte and looking curiously towards Svelte5. I've been following your guides and videos, plus using the shadcn-svelte you worked on.
    All of the stuff that comes out of this channel is such high quality.

    • @Huntabyte
      @Huntabyte  3 месяца назад +1

      Hey I appreciate the kind words, I appreciate it! Svelte and its community has been nothing short of incredible! The only bad thing is once you give it a chance, you'll never want to use something else 😂

  • @greendsnow
    @greendsnow 3 месяца назад

    Can't look at it, my eyes hurt. Css please.

  • @joseflinha
    @joseflinha 3 месяца назад

    Great video, but why name files for components differently than the name of the component itself? CartItem vs cart-item.svelte please CartItem.svelte

    • @Huntabyte
      @Huntabyte  3 месяца назад

      You should look into the annoying things that can arise with git and OS discrepancies depending on how they handle file name case sensitivity. I use kebab case for that reason, but also because it's what I like to use and what I'm most comfortable with. Feel free to use what suites you best!

    • @joseflinha
      @joseflinha 3 месяца назад

      @@Huntabyte Yes, there is a Git setting core.ignorecase for that.
      If you like such a name... 🙂