The Easiest React Hook

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

ความคิดเห็น • 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.

  • @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.

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

    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?

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

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

  • @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 👍

  • @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!

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

    Love your videos!

  • @ДмитрийКарпич
    @ДмитрийКарпич 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.

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

    straight to the point!

  • @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?

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

    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.

  • @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

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

    Love your videos. Thank you!

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

    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.

  • @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

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

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

  • @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.

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

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

  • @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.

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

    Mr. Kyle Cook is the man 😎

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

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

  • @afzalhamdulay
    @afzalhamdulay 10 หลายเดือนก่อน

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

  • @1990sankalp
    @1990sankalp 2 ปีที่แล้ว

    Please make a video on react app using vite

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

    let's go 1M 🔥

  • @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.

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

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

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

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

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

    The performance overhead of calling useId is effectively zero.

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

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

  • @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.

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

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

  • @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

  • @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?

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

    I smell high number of views

  • @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.

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

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

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

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

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

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

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

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

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

    Bro make a nextjs course

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

    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?