3 Beginner React Mistakes That Can Ruin Your App

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

ความคิดเห็น • 216

  • @LePhenixGD
    @LePhenixGD ปีที่แล้ว +58

    Mistake #3 is one I actually make very often, I spend hours debugging before realizing my mistake

    • @omega.developer
      @omega.developer ปีที่แล้ว +1

      Me also. But now I won't forget this. Really helpful video 😊

  • @ferdiebeer
    @ferdiebeer ปีที่แล้ว +13

    3rd mistake was one of the mysteries I had encountered during React development. I dont think I've read about setState function versions anywhere on the documentation. Thank you for clearing that up!

  • @VondiaLC
    @VondiaLC ปีที่แล้ว +33

    Just gonna leave this here again: You're awesome man, you explain stuff so well and really know how to.. well simplify it(its all in the name haha). Keep doing what you're doing man no matter how far I get as a developer myself I'll always have time to watch one of your videos 🤩

  •  ปีที่แล้ว +26

    Example 2: use the !! to cast the value of array length to a boolean.
    E.g: !!array.length

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

      Is the correct answer

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

      While this does work the solution he showed is much more clear and readable. With just a few more characters you can write out exactly what you want to check for instead of making the reader think around corners. No one cares about saving a few bytes or key strokes if you make the code more readable.

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

      @@moritz_p I cannot see how casting is less readable since we use negation expressions (!) in daily bases.
      But anyway, there are lots of ways to achieve the same thing and I just showed one.
      Regarding "saving few bytes" if you are always working in hobby projects and copying / pasting tutorials from internet you are good to go.

    •  ปีที่แล้ว

      Hi@@dancarter5595 . There is no right or wrong. Only different approaches. You can stick with the one is more natural for you. 😊

  • @irahazda
    @irahazda ปีที่แล้ว +12

    Lol mistake #2 is a problem that I had in my job just few days ago. Thanks for clarifying. Very enlightening and helpful. The fix turns out to be easy as you explained but I ended up taking a much longer workaround😂

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

    I am Slavic, but I have not yet found the best tutors on SLAVIC TH-cam. Thank you, Kyle, for such a clear accent!

  • @DavidsInferno
    @DavidsInferno ปีที่แล้ว +12

    For the second mistake, instead of writting:
    arr.length !==0 &&
    You can add double exclamation points before the arr.length to cast is as bool, which would look like this:
    !!arr.length &&
    Keeps the code nice, clean and easy to read. I use this often for empty string and empty arrays

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

      Didn't see this before my comment, but yes I do this to. Or Boolean(arr.length) for readability

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

      @@decentrob8126 Or we can also use ternary operator like arr.length ? : null

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

      @@the_kreatives technically yes, but in this case no, since its not "either or"

    • @monome9992
      @monome9992 ปีที่แล้ว +3

      Why do you want obfuscate a simple condition readable by anyone ?
      arr.length > 0 && or arr.length !== 0 && clearly indicate the intention without any conversion.

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

      what about !arr.length || ? Just curious

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

    Thank you, I didn't know about the setState functional setter.
    I don't update state often using the previous state value as a base, but it's good to know for when I do have to :)

  • @黃宗榮-f3i
    @黃宗榮-f3i ปีที่แล้ว +8

    Got trapped by the second mistake before! One alternative to avoid it is using the ternary operator, which forces developers to think what value to return when the antecedent is evaluated true or false.

  • @jasonlough6640
    @jasonlough6640 ปีที่แล้ว +3

    Knew all of these, good explanations. Another thing that trips up people that you briefly touched (but didnt explain) was: where does that e come from in that event handler? This is an interesting one because it seems to just be injected magically, and many libraries use that same technique. Amazing work though, wish I could have this level of tutorial 20 years ago lol.

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

    Mistake #3, one of THE Best explanation on this topic. The best thing about the explanation is not a defination rather a practical demonstration of a real -world "actual real-world" scenario. Not a dummy "if a else b something somethig....". Amazing video.

  • @amatzen
    @amatzen ปีที่แล้ว +12

    Regarding Mistake #2, I usually use Boolean(x) to make sure the result becomes a boolean value, in that regard, I don't have to make decisions whether it's 0, null etc.

    • @7iomka
      @7iomka ปีที่แล้ว

      I always use !!someVariable && ()

    • @codesymphony
      @codesymphony ปีที่แล้ว +15

      just use a double bang !!array.length &&

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

      I also prefer using double exclamation marks !! for this mistake #2

    • @rand0mtv660
      @rand0mtv660 ปีที่แล้ว +6

      I just use double bang "!!x" when trying to coerce something to boolean, but when doing length checks, I like to be explicit with "arr.length > 0". Not sure why people avoid writing that "> 0", it's not like you save that many characters when typing. I really just like the explicitness of an exact length check such as "arr.length > 0". Whenever I mentor people, I suggest them to use explicit length checks and not rely on JS quirks they don't really understand. If they want to understand those quirks, they can learn them, but writing more explicit code is just way more beneficial for everyone.
      Boolean(x) is also a really good option because it's super clear that you are trying to get a boolean value.

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

      I just thinking doing stuff like array.length && is unreadable, it should be array.length === 0 to be explicit and that actually makes it more meaningful, especially as it’s almost entirely a JavaScript only thing.

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

    One of your best videos ever. I knew some of this but I am embarrassed I did not know it all. THANK YOU.

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

    A big thank you for the second error, that is not very well explained in the doc (even in the pitfall section).
    I was just trying to figure out the "Preserving and Resetting State" first challenge that use the && operator to avoid to reset a state (due to its change of location) but didn't understand why the left side returns anything. Now it's clear, thank you !

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

    One thing that has tripped me is in edge cases where i want to store a function in react state. In that case you /always/ need to use the function version of set state since otherwise the function you pass in would be interpreted as a callback instead of the actual value you want to pass in to update.

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

    Mistake 3 could be a game changer for many beginner, great vid Kyle!

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

    You have natural react skills, but you also have great "follicle karma".
    This incarnation you have been blessed.

  • @somerandomniko
    @somerandomniko ปีที่แล้ว +44

    The third mistake was very interesting to me because i only learned solid-js thinking that solid was inspired by react. But seeing how cumbersome state in react is vs solid i'm glad i learned solid instead of react

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

      😅

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

      Fortunately there's a lib called Immer which essentially allows you to mutate state directly.

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

      but react is far more used in projects also in very large scale project too

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

      Tell me you don't understand closures, reference equality without telling me you don't 😅
      Proxies are fun though. Valtio, immer, etc bring that in an explicit manner.

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

      @@huge_letters serious question, why someone would like or need to mutate state directly?

  • @Robytsu
    @Robytsu ปีที่แล้ว +8

    One great technique in the first example would be using the !! operator. It transforms the value to boolean true or false.
    And also using the ?. operator.

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

    I was really proud when you explain the third mistake, I saw the code, I knew it will be wrong, what exactly was going to happen and why it happens. But then you show me the function version of setState. I'm blown away. Good job explaining everything.

  • @insteresting
    @insteresting 9 หลายเดือนก่อน

    Regarding mistake #3, the state is declared as
    const [array, setArray] = useState([1, 2, 3]);
    indeed, using const implies that the reference to the array variable won't be changed and can't be reassigned within the same render. The setArray function updates the value of the state for the next render, when the array variable will be reassigned with the most up-to-date values. useState always returns an array with the most up-to-date state or with the initial state if it is the first render.

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

    You explain concepts so easily! You're the best react tutor in my opinion

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

    The last one gave me a headache few weeks ago. Excellent video!

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

    Thank you very much, can you believe!?. I was programming and made the error "array.push()" stop programming and your video appeared in front of me 🤩

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

    Omg thank you! Use state has been plaguing me for years! I just hacked around it by setting a new variable with prev value, then set state with that temp variable lol

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

    To convert any truthy /falsy value, add !! before the variable.
    I.E
    {!!array.length && (Array length is truthy)}

  • @RM-xl1ed
    @RM-xl1ed ปีที่แล้ว

    Dude! Mistake #1 is something that has been confusing me for forever!! Thanks for finally helping clear that up for me!

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

    really hope the course is available soon!

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

    Just to notice that spread operator will blow up performance and speed as its copying array.
    This problem definitely cause problem with large array, like in react-table before!
    Thank for greater content 👍

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

      what would be another method, then?

    • @ДанилФилатов-х7х
      @ДанилФилатов-х7х ปีที่แล้ว +1

      @@pepperdayjackpac4521 Array.from, slice, and concat are all recomended to use when dealing with copying large arrays

  • @kelechinwa-uwa5604
    @kelechinwa-uwa5604 ปีที่แล้ว

    Thank you! This was so helpful. The last mistake is one I've made a lot and did not really understand. This was a godsend

  • @LewisMoten
    @LewisMoten 6 หลายเดือนก่อน

    I use functions that create functions often. It’s more of a performance aspect where you don’t want to run code every time the page renders. It’s similar to memorization, but can get complex in its explanation based on the scenario you are using it in.

  • @eamax
    @eamax ปีที่แล้ว +4

    As a Vue programmer, I find this kind of problem very interesting. Vue has none of these difficulties and updates values ​​or uses functions in a reactive only way.
    Maybe that's why its learning curve is smaller than React.

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

    For mistake#2: I always short circuit with double exclamation mark (!!). It converts any truthy/falsy value into its true boolean value.
    ex:
    const user = null; // Whatever value goes in here, it will be correctly converted into boolean below
    return (
    !!user && User exists
    );

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

    Regarding Mistake #3: I'd image React effectively does a === check on state variables after every operation to learn if the DOM needs to be re-rendered or not. If you push or unshift items to an array, your array reference does not change, which is why that === check (previousState === nextState) returns true, causing React to not re-render the DOM. This is funny actually, I had situation where if you change another piece of state, the DOM actually re-renders and adds the previously unnoticed state changes.

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

    I would say better to use (!) or (!!) for the second mistake. What if the something is "null" but we make the triple equal check for "undefined"

  • @AmandeepSingh-sx9ke
    @AmandeepSingh-sx9ke หลายเดือนก่อน

    Thank you Kyle for these informative videos

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

    That was awesome! Especially the mistake #3. By figuring that out, you will learn the most important logic of both JavaScript and React. Thanks Kyle

  • @aryangupta8756
    @aryangupta8756 ปีที่แล้ว +5

    For simplifying the fix for mistake #2, how about just using !! In front of your short circuit validator. For example !!array.length. This way it’s more generic and quicker to code as compared to explicitly writing out an equal or not equal expression.

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

      bang bang

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

      I use "!!" but it's slightly less readable for devs who haven't seen it before. "!== 0" is more clear what your intent was.

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

    I make extensive use of the Boolean() constructor instead of comparison operators.
    i.e. Boolean(array?.length) as opposed to array?. length !== 0, and you can see why-- if arr is undefined the simple comparison becomes undefined !== 0 which is now true. And the "Boolean" makes the intent very clear compared to !!array?.length

  • @Innengelaender
    @Innengelaender ปีที่แล้ว +3

    A way that has been recommended to me is using the ternary operator like:
    {array.length ? (
    ) : (
    null
    )}
    and you can also chain conditions (like else if) in a relatively easy way to read (once you are used to the ternary-operator)
    {showA ? (

    ) : showB ? (
    ) : showC ? (
    ) : (
    null
    )}

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

    For mistake 2 I usually just turn it into a boolean like this with the double exclamation {!!array.length && (... I am not sure if there is any drawback to this approach

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

    Thank you, this video is really helpful!

  • @isaacopeyemirobert7868
    @isaacopeyemirobert7868 6 หลายเดือนก่อน

    Very Insightful video!

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

    The second one I am using as per your solution but don't have idea about behind it other two mistakes I was familiar from long back

  • @thaisonnguyen8165
    @thaisonnguyen8165 20 วันที่ผ่านมา

    Mistake #1 I can using print.bind(null, number) to an alternative way like create a callback.

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

    One of the best teachers for js!

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

    Thanks for mentioning point 1/2 i might need to revisit my latest project and adjust some code after watching this lol

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

    as always learned smth new. ty!

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

    instead of doing this ()=> print(number) u can do this print.bind(null,number) since bind return a new function it will work !

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

    I agree with these mistakes, I used to do them and I learned them through the hard way. Thanks kyle for bringing this up.

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

    That last example 😘👌 great example!

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

    It's more verbose, but using a conditional statement is way more robust than using the && operator for checking truthy values in JSX. So instead of:
    {array.length && ( )}
    You can do:
    {array.length ? () : null}
    That way, even if the length is 0, or if your user variable somehow becomes 0 or an empty string, it still won't render, and by utilising this pattern consistently, you can be sure that you'll never run into the "0" problem.

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

    7:32 THIS is a critical point: the SCOPE of data

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

    Thanks kyle very helpful

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

    Third mistake is my favorite 🎉
    Thx a lot

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

    8:00 - UseEffect clean-up functions?

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

    Regarding Mistake #1: Is there a performance impact when you create new anonymous functions upon every component re-render, as in the print and doubler cases?

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

    Great video as usual. Calm and cool and very instructive. In another video you showed how your physical phone was linked to the desktop browser in mobile view (I think). I can’t recall which of your videos this was in but can you please provide the link ?

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

    Kyle's videos are basically an ad for all his other videos lol

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

    Hi. Very good channel. Could you may also make content for angular and ionic?

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

    Yeah, I've been using React for a long time, I understand completely the last state using issue, but I wild be lying if I said I didn't spread and update rather than paying as a function last week and it took me about 30 minutes debugging code to figure out that one of my reducers was using the wrong method for updating state. 🙄

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

    Hey Kyle can you please please make a video on making an extension for manipulating any browser with JSON version 3

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

    There is actually a third value that doesn't get rendered. It's an empty Array [].

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

    It would be great if you also do react native videos

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

    Was so hyped for the course but the React specific one he mentions isn't out yet 😢

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

    Great videos, thanks :)

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

    1 question if you can answer this - in a function version of setstate , does the component rerenders everytime the state is changed? That's why it's the most up-to-date value of the state ? Or it just changes the state's value but rerenders only once after all the states run ?

  • @SarathChandranPR-bg1qh
    @SarathChandranPR-bg1qh ปีที่แล้ว

    can you do a video about micro frontend services using react js

  • @lukor-tech
    @lukor-tech ปีที่แล้ว

    9:55 isn't empty string another one of the values? :)

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

    For the second example you may just use Boolean(value) to get true/false - it's more generic and you don't have to think if you need to check for 0, null or else.

    • @scottbrown-xveganxedgex2799
      @scottbrown-xveganxedgex2799 ปีที่แล้ว

      Can you give example please?

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

      ​@@scottbrown-xveganxedgex2799 example would be Boolean (array.lenght)
      So if array length is 0 it will evaluate to false and if it's greater than 0 it will evaluate as true. You can just simply try it out in a console with a bunch of inputs in Boolean()

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

      Maybe im missing something here. But why not just use array.length > 0?

  • @ДанилФилатов-х7х
    @ДанилФилатов-х7х ปีที่แล้ว

    In first mistake the second example is considered a bad practice, you shouldn't pass anonymous functions because they would be created anew on each rerender, if you need that number prop - define onClick handler inside the body of .map callback and then pass it in onClick

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

    Very well explained. The last example is something I'll need to keep in mind to not run into it again. 😊

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

    Great explanation 👍😊👌👌

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

    And how can I get the real value of the array in onClick method?

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

    all those points are very basic, but you showed what will happen if we neglected the possibility of a bug of error being formed. I know first and last one. but the second was knew to me. QUESTION: can we use nullish coalescence for the second one to check for falsy value??

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

    !!value && is fine too 👌🏻

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

    Can you please explain why there are almost no tutorials on react class based components here on YT? and why YTubers prefer only function based react components (including yourself) ??

  • @Abdulrahmaneid-sp6qy
    @Abdulrahmaneid-sp6qy ปีที่แล้ว

    the #3 mistake there is another solution for it , which is array.push and unshift with setArray([…array]) after all one of them. Also this solve run console.log problem before render

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

    thanks man you're a legend.

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

    I always get confused how sometimes the function body is passed or sometimes function definition itself even during resolve reject in promises confused me but this video cleared that as well. I already completed the JavaScript Simplified Course and really guys its worth it even now after being launched 2 years back and now the new react simplified course it must be way way better as Kyle's teaching style is improved exponentially. WAITING for heavy discounts when full React simplified Course Comes out.
    One more Tip: I think your pricing is way high according to India, because our average income is way less then America or Europe. Will be Appreciated if u adjust the pricing for Indian Cards accordingly.

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

    Perfect timing!

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

    More succinct would be !!user && or !!array.length &&

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

    The print(number) function also works if we dont write retun in the function body
    So, why do we write return?

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

    Kindly Post Videos about Chat GPT-4 Basics and How to use to build websites and Applications and API How to use.. Full tutorial about Chatgpt-4...
    Full Video About ChatGPT-4 API & How to use it to build websites and web applications (or) What SaaS applications we can build.. Full tutorial about Chatgpt-4 & API Use.

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

    If i wanted to squeeze some performance is it safe to wrap my state in a object and mutate the propriety that actually holds my data and then pass a new object with the mutated propriety?

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

    Thanks Kyle as always 👍

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

    What about print.bind(param)

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

    thank god we're not using react in my company... I've had multiple times during this video where I just went "wtf that's stupid"

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

    Not sure if it’s a bad practice but on an array.length check for short circuiting I usually add !! at the beginning which will convert the 0 to false

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

    I've been teaching Programming and React for a few years myself. The first mistake is by far the most common beginner/intermediate developers make. Great video!

  • @babakamaal8999
    @babakamaal8999 3 หลายเดือนก่อน

    Thanks man

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

    Thanks a lot!

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

    Excellent!!!

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

    Why people don't talk about bind()?

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

    These mistakes are why I appreciate TypeScript

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

    1:39 Simple event handler, the way to think is you pass react onclick handler something and it's his responsibility to do it, so it's on the button click that particular function would be call, so you basically pass a reference, rule of thumb
    If you have no args, you can just simply write the function name, but if you just run it, it conveys running it on the first render, also if you want to pass parameters to it, you can't do it so you call a callback function and then do something (args)

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

    Thats why we use typescript

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

    13:12 this is why I HATE React the most. We have to keep telling React every time we change something. My entire React code is a bunch of setState functions. But Angular just knows the changes. It “detects” by itself. Angular is smart.

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

    Thanks! 😀

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

    Thanks.