All language subtitles for 072 Custom Hooks - useFetch.en_US

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranรฎ)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 00:00:00,120 --> 00:00:00,660 Nicely done. 2 00:00:01,350 --> 00:00:08,680 Next, we have custom hooks and essentially custom hooks allow us to reduce the functionality. 3 00:00:09,240 --> 00:00:10,290 So let me be clear. 4 00:00:10,290 --> 00:00:15,980 We're not talking about reusing HDMI elements where you can do that with components. 5 00:00:16,530 --> 00:00:22,860 We are talking about the functionality, whether that is fetching data, saving to local storage and 6 00:00:22,860 --> 00:00:24,030 that sort of thing. 7 00:00:24,400 --> 00:00:30,330 Also, before we begin, let me just mention that I purposely added only one example of custom hooks, 8 00:00:30,450 --> 00:00:33,690 since you can easily find other custom hooks examples. 9 00:00:33,930 --> 00:00:41,460 So the code that community has created for three years, but just type in custom hooks in your favorite 10 00:00:41,670 --> 00:00:42,650 search engine. 11 00:00:42,960 --> 00:00:49,100 The point of this example is to make sure you understand the purpose and the setup of the custom hooks. 12 00:00:49,380 --> 00:00:56,010 So after that, you can either create your own custom hooks or with ease, use someone else's custom 13 00:00:56,010 --> 00:00:57,880 hooks in your own apps. 14 00:00:58,290 --> 00:01:05,370 With that said, let's start by importing the module and the module we're looking for is module number 15 00:01:05,370 --> 00:01:08,280 nine by the name of custom. 16 00:01:08,820 --> 00:01:13,950 Again, we have final set of folder and of course, in the address we're going to be looking for this 17 00:01:13,950 --> 00:01:14,840 setup folder. 18 00:01:15,180 --> 00:01:23,100 So we go here with import on line the setup and we are looking in the editorial and then more specifically, 19 00:01:23,700 --> 00:01:27,780 folder number nine, custom hooks and of course, of the setup. 20 00:01:28,120 --> 00:01:33,180 Now, in this case, there is a file name and we're looking for, for example. 21 00:01:33,630 --> 00:01:37,440 So on this case, I'll remove the heading to online. 22 00:01:37,440 --> 00:01:40,370 Of course, I would want to showcase the setup. 23 00:01:40,890 --> 00:01:47,110 So once we load, now we have loading DataDot and then we have the data. 24 00:01:47,490 --> 00:01:48,870 So what is happening over here? 25 00:01:49,800 --> 00:01:57,720 Well, if we navigate to file the example, within hours of that, we'll have somewhat standard set 26 00:01:57,720 --> 00:01:59,330 up to fetch data. 27 00:01:59,670 --> 00:02:04,620 So we have your state, we have use usufruct fact, we have lowering that variable. 28 00:02:04,630 --> 00:02:10,890 We have set loading, of course, by default loading stro, then we have some kind of state variable 29 00:02:11,130 --> 00:02:19,260 that is called product initially areas, and then we have the function that fetches something. 30 00:02:19,470 --> 00:02:26,460 So in this case, this is fetching from my own API and we use this in my Joske, of course, where we 31 00:02:26,460 --> 00:02:27,180 have the product. 32 00:02:27,540 --> 00:02:31,680 Now if you want, you can of course, navigate a bigger screen. 33 00:02:33,040 --> 00:02:37,000 And then copy and paste, it is an array of products. 34 00:02:37,970 --> 00:02:43,940 And don't worry, we'll use it a little bit later in tutorial, so you'll see what this is all about, 35 00:02:43,940 --> 00:02:51,400 but essentially it's just a bunch of product with some price, with some name and image and all that. 36 00:02:51,770 --> 00:02:53,240 So we're pitching that. 37 00:02:53,570 --> 00:02:54,700 I hit the URL. 38 00:02:55,010 --> 00:02:56,210 Of course, I get the response. 39 00:02:56,210 --> 00:03:04,850 I run the JSON and then I set two state values and I have some products and then I have set loading 40 00:03:04,990 --> 00:03:05,480 defaults. 41 00:03:05,750 --> 00:03:13,960 And of course I'm running this with my usufruct and I have the empty array means that it runs by default 42 00:03:13,970 --> 00:03:16,330 the moment we run the app, and that's it. 43 00:03:16,610 --> 00:03:19,040 And then of course, I'm just so long along the product. 44 00:03:19,370 --> 00:03:20,540 Not the point of this. 45 00:03:21,480 --> 00:03:24,480 Is not to tell you that there's something wrong with the setup. 46 00:03:24,810 --> 00:03:31,500 The point is to showcase what if I would want to reuse this functionality because there's no way for 47 00:03:31,500 --> 00:03:33,230 me to reuse it. 48 00:03:33,540 --> 00:03:40,350 I mean, I can use this with this particular URL, but if I have a different Cambourne, that also needs 49 00:03:40,350 --> 00:03:41,100 to fetch something. 50 00:03:41,460 --> 00:03:48,150 Again, I'm just reinventing the wheel now before we do anything in our custom HOLC. 51 00:03:49,030 --> 00:03:54,450 Let me just showcase that if you can, so long, of course, you'll be able to see the products again. 52 00:03:54,520 --> 00:03:58,240 The point is not to set up anything as far as the component. 53 00:03:58,270 --> 00:03:59,500 We simply have the loading. 54 00:04:00,010 --> 00:04:04,180 So we check whether the state's value for the loading is true. 55 00:04:04,360 --> 00:04:07,140 If it is, then we showcase loading that at that. 56 00:04:07,150 --> 00:04:10,340 And then once we're done with loading, we just displayed it there. 57 00:04:10,780 --> 00:04:14,810 And what you should see in a console are these 12 products. 58 00:04:15,190 --> 00:04:17,620 So, again, this is not our main concern. 59 00:04:17,990 --> 00:04:22,650 If we have the products, that just means that our fetch was successful. 60 00:04:23,050 --> 00:04:28,340 Our point is somehow to come up with functionality that we can reuse. 61 00:04:28,840 --> 00:04:31,480 So if I don't have another component. 62 00:04:32,380 --> 00:04:34,970 That also would want to fetch data. 63 00:04:35,410 --> 00:04:42,220 I don't need to duplicate these lines of code, by the way, in this case, we don't have the error. 64 00:04:42,400 --> 00:04:44,920 Keep in mind, normally you would have the error as well. 65 00:04:45,190 --> 00:04:51,940 And of course, once we set up our custom hook, we can definitely add error as well. 66 00:04:52,120 --> 00:04:55,870 And I already said that will be creating a new custom hook. 67 00:04:56,110 --> 00:05:03,610 So you can probably already guess that in the second file that is in the folder called Use Fetch, this 68 00:05:03,610 --> 00:05:05,750 is exactly what we're going to do. 69 00:05:06,160 --> 00:05:09,640 So if I navigate there, I can see that I have the react. 70 00:05:09,790 --> 00:05:13,230 I have used state and I have usufruct. 71 00:05:13,360 --> 00:05:16,410 Not only honestly, we actually don't need the react. 72 00:05:16,420 --> 00:05:19,720 We can just use use state and use effect. 73 00:05:20,170 --> 00:05:25,320 And then I have this function, I have this used fetch function. 74 00:05:25,720 --> 00:05:27,220 So here's what we could do. 75 00:05:28,060 --> 00:05:29,170 First, I could save it. 76 00:05:29,620 --> 00:05:37,480 And then where we see, for example, so our previous component, I couldn't just cut out the lines, 77 00:05:37,480 --> 00:05:41,920 starting with loading all the way to where we have the effect. 78 00:05:42,490 --> 00:05:43,870 So let's just grab everything. 79 00:05:43,890 --> 00:05:51,910 So starting with line five all the way to line seventeen and just cut it out and then navigate to use 80 00:05:51,910 --> 00:05:54,240 fetch and copy and paste. 81 00:05:54,700 --> 00:05:56,310 OK, that's an awesome start. 82 00:05:56,560 --> 00:06:04,000 So we still have our loading stage value, we still have the product and of course we still have the 83 00:06:04,000 --> 00:06:04,410 function. 84 00:06:04,750 --> 00:06:10,480 Now if you want, you can rename this something more generic, for example, data. 85 00:06:11,350 --> 00:06:17,920 But since we will use them later, so we will use this custom of later, but will still be fetching 86 00:06:17,920 --> 00:06:19,740 products, I won't do that. 87 00:06:20,050 --> 00:06:24,890 Just keep in mind that you are not limited to calling this product. 88 00:06:25,330 --> 00:06:26,190 It's statewide. 89 00:06:26,350 --> 00:06:28,190 So you can call it whatever you want. 90 00:06:28,630 --> 00:06:33,610 So my whole idea is that I would still want to perform this functionality. 91 00:06:33,910 --> 00:06:34,390 Correct. 92 00:06:34,810 --> 00:06:37,870 But I'm not doing this anymore in the component. 93 00:06:38,200 --> 00:06:40,910 So I have my custom hook. 94 00:06:41,410 --> 00:06:48,630 And of course, in order for this to work, I would need to return something from this customer. 95 00:06:48,940 --> 00:06:52,090 And what I would want to return is an object. 96 00:06:52,510 --> 00:06:57,910 And then in the object, I am going to place my two state powers. 97 00:06:58,300 --> 00:07:03,670 One is going to be loading and then the second one is going to be product. 98 00:07:03,760 --> 00:07:11,140 Since I also would want to make this reusable, I will set it up where I'll pass in the euro into the 99 00:07:11,140 --> 00:07:11,640 function. 100 00:07:11,980 --> 00:07:20,320 So I way when I call this use fetch later in different components, in different topics, I can simply 101 00:07:20,320 --> 00:07:27,220 pass in the New York URL and I'll still get back my loading, meaning whether that is true or false 102 00:07:27,490 --> 00:07:30,430 and also the data that I'm getting back. 103 00:07:30,700 --> 00:07:35,770 So I'm going to say here that I'll be looking for one argument, the oral argument. 104 00:07:36,010 --> 00:07:42,340 And then also I would want to call this usufruct when the URL changes. 105 00:07:42,760 --> 00:07:50,380 So it's going to run one time when essentially we invoke the function and also if we change the argument 106 00:07:50,650 --> 00:07:53,590 for the use for custom. 107 00:07:53,660 --> 00:07:56,560 OK, so I'll save this beautiful. 108 00:07:56,830 --> 00:08:02,260 And now, of course, I need to navigate back to, for example, and I need to import. 109 00:08:02,410 --> 00:08:06,450 And as you can see in line number two, this is exactly what we're doing. 110 00:08:06,820 --> 00:08:10,860 So we import the use for each customer. 111 00:08:11,920 --> 00:08:19,060 And of course, it's coming from the file, the use, which, by the way, I just notice that my name 112 00:08:19,240 --> 00:08:22,560 is somewhat off, should be use French. 113 00:08:22,900 --> 00:08:26,800 So, of course, in your example, it's already going to have a proper name. 114 00:08:26,800 --> 00:08:34,810 But in my case, I would need to change this where this is used for and also my import should be used. 115 00:08:35,860 --> 00:08:41,060 Now, once we're done, of course, now I want to invoke my custom hook. 116 00:08:41,500 --> 00:08:46,890 And this is the case where notice we are returning a object over here. 117 00:08:47,560 --> 00:08:51,160 So normally when we use state since we're returning. 118 00:08:51,160 --> 00:08:51,550 All right. 119 00:08:51,550 --> 00:08:54,030 We did a oray destruction. 120 00:08:54,340 --> 00:09:00,700 So this is going to be the case where now, of course, I would want to structure the object because 121 00:09:00,700 --> 00:09:04,230 that is what I'm getting back from my custom clock. 122 00:09:04,630 --> 00:09:07,690 So here I'm going to seconds and then loading. 123 00:09:08,560 --> 00:09:10,390 So that is the first thing that I'm looking for. 124 00:09:10,660 --> 00:09:13,120 And the second one is the product. 125 00:09:13,480 --> 00:09:13,900 Correct. 126 00:09:14,320 --> 00:09:18,220 And then I'm going to set this equal to use Frege. 127 00:09:18,490 --> 00:09:25,660 So not use the fact not use state, but my own custom hook by the name of use and Lanfranchi. 128 00:09:25,870 --> 00:09:28,210 And of course I need to pass in that YORO. 129 00:09:28,630 --> 00:09:33,850 And of course we already have the URL in the component. 130 00:09:33,850 --> 00:09:41,590 Correct, because we have the variable by the name of euro and that points back to my own API. 131 00:09:41,860 --> 00:09:48,550 And now the cool thing that you'll notice that once we run, our functionality didn't break. 132 00:09:48,700 --> 00:09:54,640 So now we can still check the loading and we can still get the product for a navigator. 133 00:09:54,790 --> 00:09:56,670 Check it out once I refresh. 134 00:09:57,010 --> 00:10:00,750 I definitely can see that I'm still fetching my product. 135 00:10:00,760 --> 00:10:06,050 However, now my functionality is tucked away in a separate place. 136 00:10:06,340 --> 00:10:10,560 Now my functionality is tucked away in a custom hook. 137 00:10:11,170 --> 00:10:18,790 So if I would want to use it and which is exactly what we'll do in the later topics, just so I can 138 00:10:18,790 --> 00:10:25,720 emphasize the point of using the custom hook every time I would want to fetch data instead of using 139 00:10:25,720 --> 00:10:32,620 use state and setting up the loading, setting up some kind of array and that type of thing, I will 140 00:10:32,620 --> 00:10:41,350 just call use fetch Pastorale and from the function I'll get back to things the loading as well as the 141 00:10:41,350 --> 00:10:41,760 product. 142 00:10:41,920 --> 00:10:45,310 So like I said, if you would want to introduce error as well. 143 00:10:46,220 --> 00:10:51,100 Definitely be my guest, but in my case, we're just going to stick with loading and product. 144 00:10:51,530 --> 00:10:56,930 Now, the one thing that I would want to mention that sense of this is a custom hook. 145 00:10:57,230 --> 00:10:59,320 It has to have this use. 146 00:10:59,750 --> 00:11:08,600 So, for example, if you'll just say fetch, so you're exporting Futch, you'll see a big fat error, 147 00:11:09,020 --> 00:11:18,870 even if I change the correct import because we're not allowed to use hooks inside the regular function. 148 00:11:19,160 --> 00:11:24,800 So either the function needs to be a component or it needs to be a custom hook. 149 00:11:25,160 --> 00:11:27,000 That is something you need to keep in mind. 150 00:11:27,290 --> 00:11:33,770 So that's why we need to make sure that when we're creating our own custom hooks, we need to use this 151 00:11:33,770 --> 00:11:34,550 use. 152 00:11:34,940 --> 00:11:38,000 So in this case, I call this use fetch to. 153 00:11:38,000 --> 00:11:41,140 Now, of course, I just need to make sure that my import is correct. 154 00:11:41,660 --> 00:11:44,270 So say here, use fetch. 155 00:11:44,630 --> 00:11:47,440 And of course, everything is going to work. 14819

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.