The Easiest React Hook

Поділитися
Вставка
  • Опубліковано 29 січ 2025

КОМЕНТАРІ • 72

  • @a2406
    @a2406 2 роки тому +33

    You're my official web development mentor: clear and thorough examples with super smooth delivery. When I need to quickly check something or learn a new concept, I always resort to this channel. Keep up the good work!

    • @jonathanstanelle4607
      @jonathanstanelle4607 2 роки тому +3

      I 100% agree, and would recommend folks to sign up To Kyle’s emailing list.
      It Comes with a lot of insightful tips that every developer should at least be made aware of

  • @devincheca9605
    @devincheca9605 2 роки тому +3

    You mentioned some good points for this. Another console warning I might add to further illustrate the point is with the starting example, the browser console will complain that two elements have the same id.

  • @MatthewWeiler1984
    @MatthewWeiler1984 Рік тому +1

    Thank you, that is a really useful hook.
    I'm going to start using that ASAP :)

  • @ДмитрийКарпич
    @ДмитрийКарпич 2 роки тому +1

    Just a perfect explanation, thanks! When I read docs to React I get 1/10, but with this video, all is clear and I don't forget about this future.

  • @IAmLesleh
    @IAmLesleh 2 роки тому +29

    The query selector call was incorrect, you have to use a # character to indicate ID.
    You also have to escape the colons with double backslashes so this works: document.querySelector("#\\:r1\\:")

    • @ed1nh0
      @ed1nh0 2 роки тому +1

      I was going to say that, but I don't get the point why React team did that, I mean adding double colon

    • @QwDragon
      @QwDragon 2 роки тому

      Colon can be replace by it's code. I have a video about it.

    • @QwDragon
      @QwDragon 2 роки тому +5

      @@ed1nh0 I think, they simply wanted to prevent conflicts with normal ids on the page.

    • @ed1nh0
      @ed1nh0 2 роки тому

      @@QwDragon good point

    • @CottidaeSEA
      @CottidaeSEA 2 роки тому +1

      Aren't you supposed to use single backslashes to escape the character? I've never had to do that before in JS, so I'm not sure. Because \\ would escape \, no?

  • @rjcoder24X7
    @rjcoder24X7 2 роки тому +1

    Nice job Kyle,
    You are really doing the web simplified.
    I humbly request to you please create a redux course section to simply the concept of react redux.
    Thanks 👍

  • @alii4334
    @alii4334 2 роки тому +1

    straight to the point!

  • @theidanking
    @theidanking 2 роки тому +1

    Love your videos!

  • @QwDragon
    @QwDragon 2 роки тому +5

    Created id can be directly used in getElementById and in case of proper escaping it can be used in querySelector too.
    I've posted video about that on my channel 4 monts ago.

  • @paulsullivan649
    @paulsullivan649 2 роки тому

    Awesome tip! I've found myself appending an index to mapped items, which worked fine for me, but would not work in a scenario like this. Thanks!

  • @gamidakhmedov9212
    @gamidakhmedov9212 2 роки тому

    Love your videos. Thank you!

  • @HarryRossides
    @HarryRossides Рік тому

    It is important to note the difference between "unique" and "random". The requirement here is that the ids are unique, which means that using random numbers actually introduces a logic error.

  • @gosnooky
    @gosnooky Рік тому

    I can count on one hand the number of times I've needed to use an id field in React. If you nest your inputs inside label, you don't need the id or htmlFor attributes.

  • @patrickconrad2874
    @patrickconrad2874 2 роки тому +1

    Ohhh nice this seems nice for using map() that requires a key in React too. It's a built in uuid generator right?

  • @rczzyy
    @rczzyy 2 роки тому +2

    The document.querySelector() should've had a '#' tag on it because it's an id, right?

  • @RafiesAwesomeChannel
    @RafiesAwesomeChannel 2 роки тому +5

    Make a video on the new Fresh framework from Deno! I am currently working on converting my old react/firebase site into Fresh

    • @Peter-yd2ok
      @Peter-yd2ok 2 роки тому

      Is it better than nextjs?

    • @RafiesAwesomeChannel
      @RafiesAwesomeChannel 2 роки тому

      @@Peter-yd2ok By design yes, it's much faster. By support no, you are trailblazing by using it

  • @afzalhamdulay
    @afzalhamdulay Рік тому

    so the values are random, then how can we give css to it or store the value of that input box in backend?

  • @ChrisHaupt
    @ChrisHaupt 2 роки тому

    I guess that can be used to generate a key for .mapped components?

  • @alonh.4968
    @alonh.4968 2 роки тому +2

    Isn't the querySelector error because you did ":r1:" and not "#:r1:"?
    Edit: nvm I just tried it and it's still not working.

    • @IAmLesleh
      @IAmLesleh 2 роки тому +1

      You have to escape the colons with double backslashes like document.querySelector("#\\:r1\\:")

    • @licokr
      @licokr 2 роки тому +1

      I also wondered, I tried it and I found that document.getElementById(':r1:') works.

  • @basilhammad7447
    @basilhammad7447 2 роки тому +2

    can u please explain the difference between rendering and hydrating in react

    • @Ked_gaming
      @Ked_gaming 2 роки тому

      rendering is building the html element that make the page, hydration is adding the data you want to display. Sometimes the data is static so you don't need to hydrate the page, but most of the time you hydrate by calling an API or something.

  • @sojuthomas7727
    @sojuthomas7727 2 роки тому

    Thanks kyle.but in this example you can pass ID as a prop to the component right ?

  • @abdulmuhaimin346
    @abdulmuhaimin346 2 роки тому

    let's go 1M 🔥

  • @derpenz5376
    @derpenz5376 2 роки тому +2

    Is it still possible to select those ids with css?

    • @Gbtx6
      @Gbtx6 2 роки тому

      you should be able to because by the time you can see in on the console it is part of the DOM already if im not mistaken.

    • @IAmLesleh
      @IAmLesleh 2 роки тому +3

      You can select them in CSS if you escape the colons with a backslash like #\:r1\: { … }
      You can still select them with JS too with document.querySelector("#\\:r1\\:")

    • @QwDragon
      @QwDragon 2 роки тому

      Yes, you can escape colons by writing their codes. Same with querySelector. I've shown querySelector in my April's video, but haven't shoun css. Anyway, css selector will be the same as for querySelector, except you don't need to escape backslash for the code.

  • @maskman4821
    @maskman4821 2 роки тому

    Mr. Kyle Cook is the man 😎

  • @pazuso
    @pazuso 2 роки тому

    Are there any use cases for useId in React-Native?

  • @i3_13
    @i3_13 2 роки тому

    How do you those random ids if you don't know the correct id?

  • @deepn9x
    @deepn9x 2 роки тому

    @Web Dev Simplified Hello. I have idea. Do you can clone orgchart js?

  • @1990sankalp
    @1990sankalp 2 роки тому

    Please make a video on react app using vite

  • @flowerofash4439
    @flowerofash4439 2 роки тому

    What's the other use case other than label input?

    • @QwDragon
      @QwDragon 2 роки тому

      Label for an control. And id of the form if you want to bind control placed outside of the form to it.

  • @whynot9963
    @whynot9963 2 роки тому +9

    This might find some use cases in the future, but if I am going to write `${id}-email` I might as well write id="emailInput". It is solving an issue that doesn't exist. I have been using react for 6years now, only time I have used ids is when changing style of some 3rd party library

  • @rahulreddykatkuri9431
    @rahulreddykatkuri9431 2 роки тому

    How to concatinate two input values while typing if any one know please tell me the answer

  • @md.asifal-mahmud5952
    @md.asifal-mahmud5952 2 роки тому

    I am not getting the last point. Why htmlFor={`{id}-email`} and id={`${id}-email`} is better than htmlFor="email" and id="email".

    • @alexgonzalez85
      @alexgonzalez85 2 роки тому +1

      From what I understood... I think the hook helps you when the component is used multiple times.
      He showed how the same form was used at the top and bottom of the page. If you were going to use just id="email" then you will get two input elements with the exact same id, the hook generates different id's so you don't have to worry about repetition :P

  • @jason_v12345
    @jason_v12345 Рік тому

    I think the querySelector failed only because you didn't put a # in front of it

  • @BharatPatodi
    @BharatPatodi 2 роки тому +1

    If we''re manually making each id a different one, why not avoid `useId` altogether and simply provide id names to elements manually?

  • @jason_v12345
    @jason_v12345 Рік тому

    The performance overhead of calling useId is effectively zero.

  • @joemaffei
    @joemaffei Рік тому +1

    I understand this is a contrived example, but you could solve this in pure HTML by ditching the id and htmlFor attributes, and having the input be a child of the label element instead of a sibling.

  • @flowerofash4439
    @flowerofash4439 2 роки тому

    I smell high number of views

  • @mpowereer6992
    @mpowereer6992 2 роки тому

    can we get video about firebase auth with redux? it would be nice :D

  • @belkocik
    @belkocik 2 роки тому

    Is a scenario that there are 2 inputs with the same id? LOL :D

  • @BongProgramiz
    @BongProgramiz 2 роки тому +2

    Bro make a nextjs course

  • @TeeFoles
    @TeeFoles Рік тому

    couldn't you just pass in an Id as a prop?

  • @clydegrey5060
    @clydegrey5060 2 роки тому

    It's difficult to select with querySelector but not impossible. You have to do it this way: document.querySelector('[id=":r7:"]')

  • @UsagiYiiY
    @UsagiYiiY 2 роки тому

    Hey @WebDevSimplified can you help me in something?