Make a Search Bar with React (with API Calls) | Beginners Tutorial

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

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

  • @Code_Complete
    @Code_Complete  10 месяцев назад +2

    Have questions or feedback? Head over to our Discord server! discord.gg/TWBtv5an7N
    Solve advanced programming challenges and become an expert software engineer with CodeCrafters! 40% discount on your membership - app.codecrafters.io/join?via=CodeCompleteYT

  • @abhishekraisycs514
    @abhishekraisycs514 Год назад +13

    Great tutorial mate! Made this project at 12am at night while waiting for champions league clash between bayern vs psg.

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

    I have been banging my head several times as a backend developer trying to whip up simple FE interfaces. Your video is the first that gets me somewhere. At last. Your patient explanations but some queries to ChatGPT are making me progress a little. Thanks a lot.

    • @Code_Complete
      @Code_Complete  8 месяцев назад

      Glad you found the video useful!

  • @mikeyTheDev
    @mikeyTheDev Год назад +11

    Clicked in this video accidentally, REALLY an AWESOME tutorial mate

  • @freddie4818
    @freddie4818 Год назад +14

    This was so great. Easy and clear to follow without being too slow. Thank you!

  • @garymiller8320
    @garymiller8320 8 месяцев назад +2

    Excellent video. The only criticism I have is the contrast is insufficient for those with low vision. I realize the focus is on the code, but the UI determines its accessibility. Please keep that in mind for future projects. Thanks!

  • @Anubis10110
    @Anubis10110 Год назад +4

    You can add debounce to save network calls… thanks for you effort

  • @oscarmelgarejo8563
    @oscarmelgarejo8563 8 месяцев назад +1

    Hey! Thank you so much for sharing your knowledge with us. This video was a big help for me.

  • @JesusOnAGoat
    @JesusOnAGoat 8 месяцев назад +1

    My god this is absolute life saver this video! I was struggling hard understanding the concepts and you explained it so well! Definitely gained a sub from me!

  • @Rohitweasley
    @Rohitweasley 4 месяца назад

    That was really cool, I was looking into "react-search-box" package for the same functionality but that package was not very easily customizable. I didn't know I could implement it in such a straightforward manner. Thanks a lot!

  • @abduab5453
    @abduab5453 6 месяцев назад

    just what i was looking for, thank you very much, i was trying to make my first react project using api but could not find relevant explanation.

  • @vladkara
    @vladkara Год назад +5

    Awesome! Short and very clear!

  • @bykeride2-dw1ly
    @bykeride2-dw1ly 5 месяцев назад

    Just one word.... , superb.... Explanation

  • @minimunch1971
    @minimunch1971 5 месяцев назад

    This tutorial is great!! Thank you for explaining what each line of code is for, I learned a lot!

  • @adhinarayanakunchala
    @adhinarayanakunchala Год назад +1

    thanks sir its wonderful tutorial for learning anything

  • @Racine14
    @Racine14 Год назад +1

    Perfect tuto.... I'm from DR Congo and I wish all the best dear

  • @Thinkwellpub
    @Thinkwellpub 9 месяцев назад

    Question. How do you clear the search bar once you click on something? Great tutorial! Thanks!

  • @AjayKasthala
    @AjayKasthala Год назад +3

    Need more Tutorials like these
    Kudos to you

  • @farid9323
    @farid9323 Год назад +3

    Helpful tutorial. In production apps, you'd need debouncing. Otherwise, you'd be calling the API on every key stroke.

  • @tarunnaik3053
    @tarunnaik3053 10 месяцев назад +1

    Thank You so much for this wonderful lecture ☺️

  • @codewar534
    @codewar534 Год назад +8

    Awesome tutorial man! Helped me a lot to learn api in react js!🔥

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

    Thank for creating this video

  • @cyborganic
    @cyborganic 8 месяцев назад

    Very helpful, thank you!

  • @raymondwienand8177
    @raymondwienand8177 6 месяцев назад

    Great video.
    It would be a much better user experience if you use text wrapping if you have the browser open on the side. And a bonus if you close the explorer on the side.
    Sometimes it's difficult to see what you typed

  • @sadmanh0
    @sadmanh0 Год назад +1

    very well presented, thanks.

  • @khurshedaalam7478
    @khurshedaalam7478 Год назад

    shanadar Jabardast Jindabad bhai ek dum super

  • @felixfale964
    @felixfale964 Год назад +2

    Thank you brother, your tutorial really helped me

  • @kishorek4319
    @kishorek4319 Год назад +3

    Make More Useful tutorial like this.!! Iam ready to learn More from you bro..😍💜

  • @KJOB
    @KJOB Год назад

    I learned something new thanks

  • @RaselHasan-o2r
    @RaselHasan-o2r Год назад +1

    Loved you contents, thanks man

  • @uchiha_sasuke_48
    @uchiha_sasuke_48 Год назад +1

    Superb and simple project

  • @teologomedio
    @teologomedio 9 месяцев назад +1

    Thx bro, that helped me a lot!!!

  • @Patrick_Streams
    @Patrick_Streams 11 месяцев назад

    this is so helpful i was wondering how will I fetch multiple endpoint

  • @hiteshpakhan7783
    @hiteshpakhan7783 11 месяцев назад

    this helps a lot thanks man

  • @jagadishdasari9120
    @jagadishdasari9120 Год назад +5

    Wonderful tutorial. Please do a common implementation across various JS flavors like Angular/React/Vue/etc to show the variance…👏

    • @freshhorizonswithjakub
      @freshhorizonswithjakub Год назад

      I feel like you really get it in react you should also get it in other frameworks. Concept is same.

  • @WencelausMaina
    @WencelausMaina Год назад

    This was very helpful. Thank you very much.

  • @chantal3616
    @chantal3616 Год назад +1

    Very helpful! Thanks! 😀

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

    thanks a lot man

  • @chungtunguyen6135
    @chungtunguyen6135 11 месяцев назад

    thanks for this tutorial, very helpfull!!!

  • @BoldonBigLad
    @BoldonBigLad Год назад +1

    Brilliant video and it has helped me a great deal.

  • @hervogue
    @hervogue 10 месяцев назад

    Helpful! Thanks so much!

  • @sadimridha5753
    @sadimridha5753 Год назад +1

    That was great tutorial ❤

  • @hajamydeen2025
    @hajamydeen2025 Год назад

    super explanation bro. more videos we need

  • @saivivekachutha8282
    @saivivekachutha8282 8 месяцев назад

    yeah its looking good and understandable can you please explain the hole thing what you have done ? like not technical tell me in 5lines

  • @segu_.
    @segu_. 9 месяцев назад +2

    good tutorial!
    wouldnt make more sense to fetch just one time the api and then run a filter method when input changes?
    thanks!

    • @Code_Complete
      @Code_Complete  9 месяцев назад +1

      Good question! That makes sense when we have < 100 items in our database for example but if we had 100,000 items for example, it would take a lot of bandwidth and time to first fetch all that data

    • @segu_.
      @segu_. 9 месяцев назад

      @@Code_Complete true!

    • @meli_senpai
      @meli_senpai 12 дней назад

      @@Code_Complete aren't we fetching the entire list then filtering the result right now every time, so even with more items we would be fetching the entire list with every api call right? in that case won't it be better to fetch it once instead of every time input changes?

  • @riteshsharma9838
    @riteshsharma9838 Год назад +1

    if you didn't remember how to reopen that all then
    open terminal
    1) cd react-search-bar
    2) npm install
    3) npm run dev
    *** for those who closed the vscode and unable to open the whole website or local host***

  • @sharath_jonnala
    @sharath_jonnala 10 месяцев назад +2

    Can you please make a video how to implement binary search in this?

    • @sharath_jonnala
      @sharath_jonnala 10 месяцев назад

      By the way this is a nice video

    • @Code_Complete
      @Code_Complete  9 месяцев назад +1

      Oh that’s an interesting question! Could you share more details about what you would like in the discord server linked in the channel page? We can discuss a possible solution there

  • @PeriklesPeriklesoglu
    @PeriklesPeriklesoglu Год назад +1

    thank you

  • @rajatrai_
    @rajatrai_ Год назад +1

    you have gained a subscriber!

  • @codingwave56
    @codingwave56 Месяц назад +1

    i'm rn on 17:47
    i want to just say we should store that response in variable so we don't need to make request everytime!
    am i right?

  • @ShareVideo211
    @ShareVideo211 5 месяцев назад

    thank you very much

  • @EMdragonKnight
    @EMdragonKnight Год назад

    Similar answer I got from Chatgpt, but better explained.

  • @oluwatimilehinoyewo8010
    @oluwatimilehinoyewo8010 Год назад

    Wonderful tutorial man

  • @kakun7238
    @kakun7238 Год назад +3

    one for the infinite scrolling in this select too

  • @khushwantdafre3230
    @khushwantdafre3230 Год назад +1

    Excelent tutorial, I had one question, Insted of showing the results on the same page can we use react router to redirect to another page and show the results there?

    • @farid9323
      @farid9323 Год назад

      Yes. You could use global state with the router.

  • @armat_dt
    @armat_dt 7 месяцев назад

    How to make delay between requests when typing, without delay it would be like dos attack to server😂 Very helpful video, thank you, hope for answer)
    Edit: you can use debounce method

  • @MaxMov-sp8hr
    @MaxMov-sp8hr Год назад +1

    Nice! Simple & Clear! ☀

  • @yvnnhong
    @yvnnhong 10 месяцев назад

    thank you!!

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

    You are good 👍

  • @ajiteshmishra0005
    @ajiteshmishra0005 7 месяцев назад +1

    What is the difference in creating React application using npx create react app or using vite creat react app?

    • @Code_Complete
      @Code_Complete  7 месяцев назад

      Both vite and create-react-app accomplish the same goal of starting a react project quickly. Vite is just better because it is more customizable and has a smaller bundle size

    • @ajiteshmishra0005
      @ajiteshmishra0005 7 месяцев назад

      @@Code_Complete I'm asking what is the difference we will have while coding.
      This is okay that we will have bundler as Vite NOT webpack.
      And what are all major difference we will have using vite?

  • @tahaansari5621
    @tahaansari5621 Год назад +1

    Great tutorial! I was wondering if we should be able to fetch results in the useEffect hook.

    • @Code_Complete
      @Code_Complete  Год назад +1

      Great idea! That way the data only needs to be fetched once

  • @KuldeepSingh-jg9xz
    @KuldeepSingh-jg9xz 5 месяцев назад

    how do i set the value selected under SearchResults back to Searchbox . Can you also share that ?

  • @cr7fanclubindiacr746
    @cr7fanclubindiacr746 Год назад +1

    Can i use different api from another website like google books api

  • @Therealdudeman
    @Therealdudeman 11 месяцев назад

    Is there a way to have this feature search through two collections in a data base?

  • @Chandrashekhar_5555
    @Chandrashekhar_5555 Год назад

    super👌 . please make image editor with features having color change of image(also gradient color and monochrome) compress the image to reduce size , image characterisation by their types (png, jpg... ect)

  • @turing4991
    @turing4991 Год назад

    will it return closest matching word? for example if i type "food" will it be able to detect the word "foods"

  • @khadizaakter-j1h
    @khadizaakter-j1h 8 месяцев назад

    why didn't you use the useEffect for dependency?

  • @prashant0597
    @prashant0597 Год назад

    Can you make another video same as this but the API call using redux and show a list whatever inside in API.

  • @sidforreal
    @sidforreal Год назад +1

    would be greate if you can cover FE interviews system design questions on this channel
    Subscribed!!

    • @Code_Complete
      @Code_Complete  Год назад

      Thats a great idea! Will look into it 👍

  • @HabibTamkin
    @HabibTamkin Год назад

    Hi I have a project the users table which I have to create a search bar and filtering the users but the API my partner back end did it now I become dizzy what should do? can you help me?

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

    you should have shown the final output after finishing as this is a frontend project that mini view looks weird

  • @Ytrajpoot
    @Ytrajpoot Год назад

    Hello, when i create a build file with vite. The routing system does not work like its work fine inside website navigation but when I write URL by myself it say GET no request found

  • @AlanSchooll
    @AlanSchooll Год назад

    Nice tutorial! You haven't used async in fetch data funtion, then how it can be used as for performing async function fetching data?

    • @Code_Complete
      @Code_Complete  Год назад

      You can use async/await which is the new way of doing things or you can use promise chaining using .then() which is slightly older

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

    i am not able to use the given api i dont know why this doesnt work for my i think api provided is not active now

  • @Rashomon69
    @Rashomon69 8 месяцев назад

    This does an API request on EACH change? Isn't that a HECK of a lot of API calls?

  • @nicx.nvrlnd
    @nicx.nvrlnd Год назад +1

    is it okay to use debounce?

    • @Code_Complete
      @Code_Complete  Год назад +1

      Yup that would be great! I wanted to include that in this tutorial but thought it might be a bit too much for a beginners tutorial

    • @hybridgamer4105
      @hybridgamer4105 11 месяцев назад

      ​@@Code_Complete But still debouncing will still result in more api calls, one solution i can think of is caching the data fetched from the api and then filtering the data in the frontend itself to reduce api calls. Is it right? Wanted to know what production level apps use

  • @AdityaRaj-ki3md
    @AdityaRaj-ki3md 9 месяцев назад +1

    The video is great but if word wrap was on it will be easier to go with it.

    • @Code_Complete
      @Code_Complete  9 месяцев назад

      Good point, thanks! Will use it in my future videos

  • @PaulPC999
    @PaulPC999 Год назад +1

    what if i have my own API, im getting an error 'products.filter is not a function'

    • @Code_Complete
      @Code_Complete  Год назад +3

      You should try logging out what products is. This likely means its not an array and could be an object or undefined

  • @MvrkTeja
    @MvrkTeja 8 месяцев назад

    short and descriptive

  • @pulkitagrawal5054
    @pulkitagrawal5054 Год назад

    Can you tell me what should i do to automatically hide the search list if I scroll the page?

    • @crazygamepad6592
      @crazygamepad6592 Год назад

      use the propertie of your input html element, onFocus to show the suggestion and the items and onBlur to hide them

  • @mzeren4713
    @mzeren4713 Год назад +3

    it works when it is lowercase but it deosnt work when it will be uppercase

    • @Code_Complete
      @Code_Complete  Год назад

      Good catch, it should be user.name.toLowerCase().includes(value.toLowerCase())

  • @sonugupta147
    @sonugupta147 Год назад

    At 15:50, I didn't understand how you evaluated those variables in the return statement as Boolean ?

    • @Code_Complete
      @Code_Complete  Год назад +1

      In JS if a value is "falsy" i.e. null, undefined, 0, "", etc. it is treated as false. In that line I chained up multiple values which could be truthy or falsy using && operators

    • @sonugupta147
      @sonugupta147 Год назад +1

      @@Code_Complete thanks for your reply. Actually I was unaware that the filter function filters a particular element of the array based on the boolean returned from its callback.

  • @Arpit7899
    @Arpit7899 Год назад

    Hey buddy great tutorial. I had a question that inside fetchData function i am not able to change fetch to using hook useEffect - which is the new way. The error we get is - Hooks can only be called inside of a body of a function component. Basically they are asking us to use hooks only at the top level of react function.
    So any idea how we implement onChange but with hooks and not just fetch

    • @francisfuwaku
      @francisfuwaku Год назад

      make sure the useEffect comes before any codeblock like if(){}

  • @kidzeroll99
    @kidzeroll99 Год назад

    Hi please make video how to integrated otika or stisla bootstrap template to reactjs
    Because iam getting stuck sidebar not working when navigate to other page using react-router-dom

  • @nnasim5089
    @nnasim5089 Год назад

    Very nice tutorial, can you tell us how you integrate Google or Bing Search API? In react app thanks

  • @derarageremu
    @derarageremu Год назад

    its great but make video of the same project by using next 13 app router.

  • @tanoryjakaperdana1419
    @tanoryjakaperdana1419 5 месяцев назад

    Use filter on server side bro.. dont take all the datas from API just to filter it in front-end..

  • @tomasburian6550
    @tomasburian6550 7 месяцев назад +1

    Why not make it on click? When you're working on a large project with a lot of data, you want to use a button-enabled search.

  • @abdullahjama8404
    @abdullahjama8404 11 месяцев назад

    lazy me didn't make alot component to make the react app look simpler and more organized

  • @hemantjoon
    @hemantjoon Год назад +1

    To the point. Amazing Job
    Looking Forward for your new videos.
    Thanks for this

  • @ilirbajrami2902
    @ilirbajrami2902 Год назад +1

    isn't this going to skyrocket your hosting bill by making an api request in every key stroke?

    • @farid9323
      @farid9323 Год назад

      You would need to debounce the input.

    • @ilirbajrami2902
      @ilirbajrami2902 Год назад

      @@farid9323 can you please explain a bit what do you mean with "debounce"?

    • @hybridgamer4105
      @hybridgamer4105 11 месяцев назад

      ​@@ilirbajrami2902basically debouncing delays the function call so instead of calling the api on every keystroke, you can set the delay to maybe 400ms so when the user stops typing or the keystrokes are delayed for more than 400ms then only the api would be called

    • @hybridgamer4105
      @hybridgamer4105 11 месяцев назад

      But still this will still result in more api calls, one solution i can think of is caching the data fetched from the api and then filtering the data in the frontend itself to reduce api calls

  • @AvinashYede-ck2cs
    @AvinashYede-ck2cs Год назад +1

    can you make tutorial on redux

  • @rakshithshetty6781
    @rakshithshetty6781 Год назад

    Use typehead

  • @johndevnoza4223
    @johndevnoza4223 11 месяцев назад

    man use time staps, so whoever wants can chose the part they are looking for.

  • @fillpattanamontri8698
    @fillpattanamontri8698 Год назад

    12:29

  • @Malik-j5e
    @Malik-j5e 8 месяцев назад

    add something

  • @mtt9119
    @mtt9119 Год назад

    Hello! Thank you very much for a very useful lesson! How to make it so that if we select Leanne Graham as a result, it will show us "username" and "email".
    For example:
    Leanne Graham
    Bret
    Sincereapril.biz

  • @prabhat4571
    @prabhat4571 Год назад +1

    No need to create state in app man

  • @Omar-gr7km
    @Omar-gr7km Год назад +15

    That poor API. Getting called with every letter typed or deleted 🤣

    • @Omar-gr7km
      @Omar-gr7km Год назад +2

      Also, its strongly advised that you don't use map id as the key. In this example, each json item has an id, so you should use that.

    • @callous21
      @callous21 9 месяцев назад +1

      What should you do instead?

    • @Babajagrarox
      @Babajagrarox 9 месяцев назад

      Why so much prop drilling, is it a standard practice?

    • @rahulnikam1279
      @rahulnikam1279 9 месяцев назад +22

      As he is teaching for beginners you should not laugh... and don't try to be very cool in comments... you don't might even know the solution for that issue...
      Ans for this issue is: You can implement debounce on frontend and cache on server side! Study more about debounce ❤

    • @jefferyenofe2677
      @jefferyenofe2677 8 месяцев назад

      Api crying

  • @p1k1m4ru
    @p1k1m4ru 8 месяцев назад

    This is trash code. Each letter a sent to API? no one use alert() and maybe instead of input to alert you should fulfill the form? ahhh that was to hard i got it