All language subtitles for 004 What is React_en

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
en English
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 Download
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
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
tr Turkish
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:01,140 --> 00:00:02,430 So now that we know 2 00:00:02,430 --> 00:00:06,060 why we need a JavaScript framework in the first place, 3 00:00:06,060 --> 00:00:09,330 let's start by learning about the most popular framework 4 00:00:09,330 --> 00:00:11,760 out there, React. 5 00:00:11,760 --> 00:00:15,150 So in this lecture, we will get a high-level overview 6 00:00:15,150 --> 00:00:18,930 of what React actually is and how it works. 7 00:00:18,930 --> 00:00:20,820 So it's gonna be a full packed 8 00:00:20,820 --> 00:00:22,950 but super interesting lecture. 9 00:00:22,950 --> 00:00:24,873 So let's quickly get started. 10 00:00:26,730 --> 00:00:30,270 So according to the official React documentation, 11 00:00:30,270 --> 00:00:35,190 React is a JavaScript library for building user interfaces. 12 00:00:35,190 --> 00:00:36,840 Now, that's something 13 00:00:36,840 --> 00:00:39,780 but it really isn't that helpful, is it? 14 00:00:39,780 --> 00:00:42,630 So let's extend this definition by a bit 15 00:00:42,630 --> 00:00:44,850 so that it becomes more helpful 16 00:00:44,850 --> 00:00:49,830 or, should I say, a little bit more crazy like this. 17 00:00:49,830 --> 00:00:53,040 So now, in this slightly modified definition, 18 00:00:53,040 --> 00:00:56,490 React is an extremely popular, declarative, 19 00:00:56,490 --> 00:00:58,980 component-based, state-driven, 20 00:00:58,980 --> 00:01:02,250 JavaScript library for building user interfaces, 21 00:01:02,250 --> 00:01:04,620 created by Facebook. 22 00:01:04,620 --> 00:01:07,500 And this is actually a lot more helpful 23 00:01:07,500 --> 00:01:10,950 because now, we can deconstruct this definition 24 00:01:10,950 --> 00:01:14,673 and learn about what React actually is, step by step. 25 00:01:15,600 --> 00:01:18,840 So starting with component-based design, 26 00:01:18,840 --> 00:01:22,590 React is all about components such as buttons, 27 00:01:22,590 --> 00:01:26,400 input fields, search bars, and so on. 28 00:01:26,400 --> 00:01:30,180 So components are the building blocks of user interfaces 29 00:01:30,180 --> 00:01:31,680 in React. 30 00:01:31,680 --> 00:01:34,590 And in fact, basically all React does 31 00:01:34,590 --> 00:01:38,520 is to take components and draw them on a webpage. 32 00:01:38,520 --> 00:01:39,630 That's it. 33 00:01:39,630 --> 00:01:43,050 And so we built complex UIs in React 34 00:01:43,050 --> 00:01:45,240 by building multiple components 35 00:01:45,240 --> 00:01:49,080 and then combining these components like LEGO pieces. 36 00:01:49,080 --> 00:01:53,880 For example, to create a complex application like Airbnb. 37 00:01:53,880 --> 00:01:56,250 So here we have exactly the same components 38 00:01:56,250 --> 00:02:00,780 that we saw earlier, but all combined into a complex UI. 39 00:02:00,780 --> 00:02:03,360 So the navbar, the search bar, 40 00:02:03,360 --> 00:02:06,150 the results panel, and the map. 41 00:02:06,150 --> 00:02:08,430 Now, another thing that we do with components 42 00:02:08,430 --> 00:02:10,050 is to reuse them. 43 00:02:10,050 --> 00:02:12,360 For example, here in the results panel, 44 00:02:12,360 --> 00:02:15,450 there are multiple listing that look quite similar. 45 00:02:15,450 --> 00:02:17,820 And so we can create a listing component 46 00:02:17,820 --> 00:02:20,100 and then reuse it three times here, 47 00:02:20,100 --> 00:02:22,263 simply adjusting the data a little bit. 48 00:02:23,700 --> 00:02:26,040 Now, since we built complex UIs 49 00:02:26,040 --> 00:02:28,350 by combining multiple components, 50 00:02:28,350 --> 00:02:31,140 each component must have all the information 51 00:02:31,140 --> 00:02:33,990 about what it looks like, right? 52 00:02:33,990 --> 00:02:37,470 So in order to describe what each component looks like 53 00:02:37,470 --> 00:02:38,850 and how it works, 54 00:02:38,850 --> 00:02:43,350 we use a special declarative syntax called JSX. 55 00:02:43,350 --> 00:02:45,150 And declarative simply means 56 00:02:45,150 --> 00:02:48,060 that we tell React what a component 57 00:02:48,060 --> 00:02:51,330 and ultimately the entire UI should look like 58 00:02:51,330 --> 00:02:53,580 based on the current state. 59 00:02:53,580 --> 00:02:58,530 So React is basically a huge abstraction away from the DOM 60 00:02:58,530 --> 00:03:01,470 so that we never have to work with a DOM directly 61 00:03:01,470 --> 00:03:04,140 as we would with vanilla JavaScript. 62 00:03:04,140 --> 00:03:06,840 So we simply tell React what we want to happen 63 00:03:06,840 --> 00:03:10,560 when some data changes, but not how to do it. 64 00:03:10,560 --> 00:03:13,770 And again, we do that using JSX. 65 00:03:13,770 --> 00:03:18,770 So JSX is basically a syntax that combines parts of HTML, 66 00:03:19,230 --> 00:03:22,380 CSS, JavaScript, and it even allows us 67 00:03:22,380 --> 00:03:25,320 to reference other React components. 68 00:03:25,320 --> 00:03:27,690 And the declarative nature of React 69 00:03:27,690 --> 00:03:30,600 is an essential concept that, of course, 70 00:03:30,600 --> 00:03:32,823 we will really dive into later. 71 00:03:34,230 --> 00:03:37,650 But now you might wonder, if we never touch the DOM, 72 00:03:37,650 --> 00:03:40,680 then how does React update the UI? 73 00:03:40,680 --> 00:03:44,820 Well, that's where the concept of state comes into play. 74 00:03:44,820 --> 00:03:47,520 So remember that the main goal of React 75 00:03:47,520 --> 00:03:51,090 is to always keep the UI in sync with data. 76 00:03:51,090 --> 00:03:54,750 And from now on, let's actually call that data, state. 77 00:03:54,750 --> 00:03:58,740 For example, an array of apartments on Airbnb. 78 00:03:58,740 --> 00:04:00,960 So based on our initial state, 79 00:04:00,960 --> 00:04:03,480 React will render a user interface 80 00:04:03,480 --> 00:04:07,410 using the components that we wrote using JSX. 81 00:04:07,410 --> 00:04:10,620 Then based on some event like a button click, 82 00:04:10,620 --> 00:04:12,360 the state might change. 83 00:04:12,360 --> 00:04:15,030 For example, more data about apartments 84 00:04:15,030 --> 00:04:17,190 might be loaded from an API. 85 00:04:17,190 --> 00:04:19,980 And so here comes the interesting part. 86 00:04:19,980 --> 00:04:21,870 Whenever the state changes, 87 00:04:21,870 --> 00:04:24,450 we manually update the state in our app 88 00:04:24,450 --> 00:04:26,400 and React will then automatically 89 00:04:26,400 --> 00:04:30,780 re-render the user interface to reflect that latest state, 90 00:04:30,780 --> 00:04:32,280 or in other words, 91 00:04:32,280 --> 00:04:37,280 React react to state changes by re-rendering the UI. 92 00:04:37,680 --> 00:04:40,590 And that is in fact the whole reason 93 00:04:40,590 --> 00:04:44,043 why React is called React in the first place. 94 00:04:45,540 --> 00:04:47,760 Now, there's always been some debate 95 00:04:47,760 --> 00:04:51,000 over whether React is actually a framework 96 00:04:51,000 --> 00:04:53,070 or just a library. 97 00:04:53,070 --> 00:04:55,530 Well, the short answer is that React 98 00:04:55,530 --> 00:04:57,840 is actually just a library, 99 00:04:57,840 --> 00:05:00,570 even though I keep calling it a framework. 100 00:05:00,570 --> 00:05:03,900 And the reason for that is that React itself 101 00:05:03,900 --> 00:05:07,380 is really only the so-called view layer. 102 00:05:07,380 --> 00:05:11,100 So if we want to build a complete real world application, 103 00:05:11,100 --> 00:05:13,680 we need to choose multiple external libraries 104 00:05:13,680 --> 00:05:15,360 to add to our project. 105 00:05:15,360 --> 00:05:19,200 For example, for routing or for data fetching. 106 00:05:19,200 --> 00:05:22,680 Now to address this, there are actually multiple frameworks 107 00:05:22,680 --> 00:05:25,470 that have been built on top of React. 108 00:05:25,470 --> 00:05:28,230 So frameworks that include all these functionalities 109 00:05:28,230 --> 00:05:31,050 that React is missing out of the box, 110 00:05:31,050 --> 00:05:35,340 and the most popular ones are called Next.js and Remix. 111 00:05:35,340 --> 00:05:38,673 But again, more about all that later in the course. 112 00:05:39,870 --> 00:05:40,950 Now, moving on. 113 00:05:40,950 --> 00:05:42,810 Besides all the great features 114 00:05:42,810 --> 00:05:44,430 that we've been talking about, 115 00:05:44,430 --> 00:05:46,710 maybe the biggest reason to choose React 116 00:05:46,710 --> 00:05:50,010 over all the other frameworks that are similar 117 00:05:50,010 --> 00:05:53,850 is because React is extremely popular. 118 00:05:53,850 --> 00:05:57,630 So according to the weekly download numbers from npm, 119 00:05:57,630 --> 00:06:01,380 React is by far the most used framework. 120 00:06:01,380 --> 00:06:04,230 And the difference between React and the other ones 121 00:06:04,230 --> 00:06:06,210 only seems to be growing. 122 00:06:06,210 --> 00:06:09,960 So React really isn't going anywhere. 123 00:06:09,960 --> 00:06:13,050 A big reason for that is that many large companies 124 00:06:13,050 --> 00:06:15,960 have adopted React a long time ago. 125 00:06:15,960 --> 00:06:18,510 And so now, more and more smaller companies 126 00:06:18,510 --> 00:06:22,260 all over the world are following in their footsteps. 127 00:06:22,260 --> 00:06:24,120 This means that all these companies 128 00:06:24,120 --> 00:06:27,120 now need React developers for their teams, 129 00:06:27,120 --> 00:06:31,140 which, of course, has created a huge worldwide job market 130 00:06:31,140 --> 00:06:34,830 with a high demand for qualified React developers. 131 00:06:34,830 --> 00:06:36,750 And these are not just any jobs. 132 00:06:36,750 --> 00:06:39,480 They're usually well-paying jobs. 133 00:06:39,480 --> 00:06:42,060 Now, even another positive outcome 134 00:06:42,060 --> 00:06:45,210 of React's huge popularity is that now, 135 00:06:45,210 --> 00:06:49,530 there is a very large and active React developer community, 136 00:06:49,530 --> 00:06:51,780 which means that there are always gonna be 137 00:06:51,780 --> 00:06:55,890 lots of tutorials, Stack Overflow questions and answers, 138 00:06:55,890 --> 00:07:00,570 and also lots of support given to other React developers. 139 00:07:00,570 --> 00:07:02,070 And if you ask me, 140 00:07:02,070 --> 00:07:04,770 this is actually one of the strongest benefits 141 00:07:04,770 --> 00:07:07,080 of using React right now. 142 00:07:07,080 --> 00:07:10,260 Also because this huge community has grown 143 00:07:10,260 --> 00:07:15,260 a truly gigantic third-party library ecosystem around React. 144 00:07:15,690 --> 00:07:19,500 And so now, you can integrate countless useful libraries 145 00:07:19,500 --> 00:07:22,803 and tools into your own React applications. 146 00:07:24,150 --> 00:07:25,740 And now, our last topic 147 00:07:25,740 --> 00:07:28,860 is that React was created by Facebook. 148 00:07:28,860 --> 00:07:30,420 Well, more specifically, 149 00:07:30,420 --> 00:07:33,930 React was created in 2011 by Jordan Walke, 150 00:07:33,930 --> 00:07:38,250 who is an engineer who was working at Facebook at the time. 151 00:07:38,250 --> 00:07:42,120 So that's why we say that React is backed by Facebook 152 00:07:42,120 --> 00:07:44,250 or now, by Meta. 153 00:07:44,250 --> 00:07:47,940 So there, React was first used on the newsfeed 154 00:07:47,940 --> 00:07:49,710 and also the chat app. 155 00:07:49,710 --> 00:07:52,740 And from there, it spread out to the entire Facebook 156 00:07:52,740 --> 00:07:55,890 and also the Instagram applications. 157 00:07:55,890 --> 00:08:00,890 Then in 2013, React was open-sourced for everyone to use it 158 00:08:01,170 --> 00:08:03,870 and the rest is history 159 00:08:03,870 --> 00:08:07,920 because React has truly and completely transformed 160 00:08:07,920 --> 00:08:09,900 front-end web development, 161 00:08:09,900 --> 00:08:13,920 not only by developers that are using React itself, 162 00:08:13,920 --> 00:08:16,620 but because many other modern frameworks 163 00:08:16,620 --> 00:08:18,690 were created as a response, 164 00:08:18,690 --> 00:08:21,423 which really changed the industry forever. 165 00:08:22,980 --> 00:08:27,980 Okay, so to summarize, React is really good at two things. 166 00:08:28,800 --> 00:08:31,530 First, rendering components on a webpage 167 00:08:31,530 --> 00:08:35,610 as a user interface based on their current state. 168 00:08:35,610 --> 00:08:38,580 And second, React is really good 169 00:08:38,580 --> 00:08:41,850 at keeping the user interface in sync with state 170 00:08:41,850 --> 00:08:46,350 by re-rendering, or in other words, by reacting 171 00:08:46,350 --> 00:08:49,830 when the state of one of the component changes. 172 00:08:49,830 --> 00:08:53,070 And as you will see later, React does all this 173 00:08:53,070 --> 00:08:55,800 by employing something called a virtual DOM, 174 00:08:55,800 --> 00:08:58,620 a Fiber tree, one-way data flow, 175 00:08:58,620 --> 00:09:01,080 and many other techniques that we will study 176 00:09:01,080 --> 00:09:02,820 throughout this course. 177 00:09:02,820 --> 00:09:03,653 All right. 178 00:09:03,653 --> 00:09:06,360 And so now that you have a rough overview 179 00:09:06,360 --> 00:09:08,370 of what React actually is, 180 00:09:08,370 --> 00:09:10,920 let's set up our development environment 181 00:09:10,920 --> 00:09:14,313 so that we can start writing some serious code finally. 14346

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