Avoid losing Reactivity in your Vue Application

  Рет қаралды 9,228

Alexander Lichter

Alexander Lichter

Күн бұрын

Пікірлер: 83
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
Like if you ever "lost" reactivity!
@Kingside88
@Kingside88 11 ай бұрын
I really like your videos because they are close to real life problems. Another big topic is avoiding losing reactivity with arrays.
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
Thank you so much 🙏 Good point. Will write this down for another video! 👌
@davealex123
@davealex123 9 ай бұрын
The timing of this video is crazy. I was literally wrapping a prop in a ref and was wondering why my code was not behaving correctly. This video explanation was really helpful. Thank you for creating such an informative short video.
@TheAlexLichter
@TheAlexLichter 9 ай бұрын
That is indeed great timing 👏🏻 Glad it helped!
@LiranTal
@LiranTal 11 ай бұрын
Thanks for explaining this very simply, Alexander. I especially liked all the different options because you've hit the different cases I personally used. Please keep up with this type of content. I appreciate it a lot!
@TheAlexLichter
@TheAlexLichter 10 ай бұрын
Glad it was helpful Liran! 🙌🏻
@alimaher1
@alimaher1 11 ай бұрын
When the video came out, I watched and said to myself 'meh, it's a rare case'. Here coming back after spending more than an hour debugging my code. What a life haha! Thanks, Alexander!
@TheAlexLichter
@TheAlexLichter 10 ай бұрын
Oh wow! Sometimes coincidence is too real 😆 Glad it helped 👏🏻
@gabrielserejo8379
@gabrielserejo8379 11 ай бұрын
Thanks Alex, please keep it up! I see every single video
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
Definitely will! Thanks for tuning in every time 🙏
@BricBracASMR
@BricBracASMR 11 ай бұрын
I'm French. Your content is so qualitative! Thank you so much!
@BricBracASMR
@BricBracASMR 11 ай бұрын
@unseriousdev oui oui baguette 😋
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
Thank you for tuning in! Gald it helps 🙌✨
@cheaterman49
@cheaterman49 9 ай бұрын
Wow, excellent video, some of this stuff can be really confusing and isn't (AFAIK) really explained in the docs either - at least not as a whole. It's also great that you make recommendations "in passing" such as "don't destructure props" - addressing common mistakes before they happen is a great idea :-). Really a must-watch video IMHO, thanks for making it :-)
@ribl1000
@ribl1000 11 ай бұрын
high value videos -some of the best most consice vue/nuxt content out there
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
Thank you so much 🙏🏻
@mattickx
@mattickx 11 ай бұрын
Is there any overhead if we would use toRefs() compared of toRef() ? I do prefer using toRefs() and destructing that result. But I wonder if there is overhead due to it parsing all props instead just the ones you want to make reactive. Or is this negligible?
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
Nah, toRefs is fine as long as you don’t have optional values. Then, restructuring might not work as expected 😊
@prishanf
@prishanf 8 ай бұрын
Hey Alex thanks a lot the great video. I’m still confused about what is the difference between props.title vs ()=> props.title
@virusblitz
@virusblitz 11 ай бұрын
Thanks covering this, love it when you show common pitfalls! Even with vue experience I keep making some of these :)
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
You are welcome! Glad it is helpful 🙌
@DeepStreamBits
@DeepStreamBits 11 ай бұрын
Would a computed() value work the same as toRef()?
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
Yes, absolutely! And that'd also be my "go to" version when dealing with props or `reactive` values - especially as props are read-only anyway 👌
@alibahrami6810
@alibahrami6810 11 ай бұрын
I must say, awesome content! keep going great, Alexander!
@TheAlexLichter
@TheAlexLichter 10 ай бұрын
Thanks, will do for sure! 🔥
@freakfreak786
@freakfreak786 18 күн бұрын
Man...i've been using nuxt wrong the entire time. Time to refactor some code. Awesome video btw, thank you
@TheAlexLichter
@TheAlexLichter 18 күн бұрын
Glad it helped you 😊
@vuenice
@vuenice 11 ай бұрын
Which title will be considered in template, props.titile or toRef(...)
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
The more explicit one (so const title > props.title) in the template
@jass__0
@jass__0 11 ай бұрын
After working on react for 2 years , now moving to vue and it just amazed me. But now react making huge change by bringing its compiler hope that it wont hurt vue. Xd :) Btw, Good content.
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
Glad to hear that the switch to Vue was fun to you 👍🏻 Thank you ☺️
@mattfletcher7321
@mattfletcher7321 11 ай бұрын
Your tutorials are very good! Would you be able to create a tutorial for writing a composable that could accept a primitive, ref, or getter? Or at least a deep dive into how vueuse or the nuxt composables handle this scenario?
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
Thank you! Yes, absolutely. Noted down 👌
@valacshiro378
@valacshiro378 11 ай бұрын
Thabk you this solved my problem. Realle good videos, keep it going this ir helpful in many ways 😊😊
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
Awesome! Happy to hear they help 🙏
@nines_99
@nines_99 11 ай бұрын
probably i should read docs, but the obvious question is: what’s the difference between computed and toRef? why didn’t you use computed? and instead used toRef?
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
Computed would be my go-to for props. When having other reactives, toRef allows to sync between the values in both ways!
@nines_99
@nines_99 11 ай бұрын
@@TheAlexLichter ooh, i didn’t know that, thank you!
@alexandros-markovits
@alexandros-markovits 11 ай бұрын
Nice tutorial! Also caution for times that objects are being passed in a component, the reactivity mechanism can end up being based on value by reference. More examples and best practices of such cases could be interesting.
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
Good point! It is general JS behavior but can still shoot you in the foot 🙈
@youhan96
@youhan96 11 ай бұрын
Great explanation Alex! Made complete sense!
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
Glad it was helpful! 🙏🏻
@KennethFabo
@KennethFabo 2 ай бұрын
Hey Alex thanks a lot the great video. I’m still confused about what is the difference between props.title vs ()=> props.title
@TheAlexLichter
@TheAlexLichter 2 ай бұрын
Thanks! If you want to watch a value from an reactive object (and props are „reactive“), you need to use that „reactive getter“ pattern so the watcher knows when a value updates
@reneeschke
@reneeschke 11 ай бұрын
I didn't know props is "reactive()" under the hood, nice! I'm surprised you didn't mention making a computed of title in the component. What's your stand here? It works, but probably not recommended?
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
Yeah, `computed` would be my go-to solution here as props are read-only anyway!
@reneeschke
@reneeschke 11 ай бұрын
@@TheAlexLichter why didnt u include the computed workflow in the video, then? just curious. you mean props are read only, right? refs can be changed? or am I crazy now 😂
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
Good question. Should've shown it too as an option, even though computed has a slight overhead (because it adds a dependency check) Yup, you are right - Updated my comment 😂
@Like_a_lion_979
@Like_a_lion_979 11 ай бұрын
Thank for the video, really useful. I wonder is there a way to use somehow toRefs to not lose reactivity?
@JiveOff
@JiveOff 11 ай бұрын
From experience, toRefs can be used with the output of defineProps, which then would make all props reactive if you use the output of toRefs.
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
You are welcome! With toRefs, you won't lose the reactivity (as shown) ✔
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
toRef is useful for *optional* props (which are not covered via toRefs if they don't exist)!
@Gaijin101
@Gaijin101 10 ай бұрын
Wonder if we ever gonna get a simpler ref vs reactive | useFetch vs $fetch. Its not very intuitive for most beginners.
@TheAlexLichter
@TheAlexLichter 10 ай бұрын
Great idea Damian! Will put it on the list 👌
@hassankadhim5465
@hassankadhim5465 11 ай бұрын
🔥🔥
@LujzaPoroknovcova
@LujzaPoroknovcova 5 ай бұрын
Nice video as always but the example with title passed as props and then mutated thanks to toRef is not the best as props shouldn't be mutated.😊
@TheAlexLichter
@TheAlexLichter 5 ай бұрын
Yes, that's true! Also mentioned that in the comments before. On the other hand, a `computed` is less performant (+ there is the readonly helper)
@ngetichishmael
@ngetichishmael 11 ай бұрын
This solves a lot of my problems 😂.
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
Perfect 🙌
@yunusemrefersiz2848
@yunusemrefersiz2848 7 ай бұрын
An Other great video ty Alex
@TheAlexLichter
@TheAlexLichter 7 ай бұрын
Thank you! 🙏
@karshten9218
@karshten9218 10 ай бұрын
Thanks a lot
@freekeys
@freekeys 7 ай бұрын
Exactly.... We shouldn't destructuring the props 💯, i used to do in my initial days🤦😂
@TheAlexLichter
@TheAlexLichter 7 ай бұрын
And you will be able to again in Vue 3.5 with the (in 3.4 experimental) props destructuring feature 👀
@freekeys
@freekeys 7 ай бұрын
@@TheAlexLichter so props destructuring won't lose the reactivity in vue 3.5 feature?🤔
@TheAlexLichter
@TheAlexLichter 7 ай бұрын
@freekeys yup! Check out the RFC @ github.com/vuejs/rfcs/discussions/502
@freekeys
@freekeys 7 ай бұрын
@@TheAlexLichter so pinia would also do it, current i need to use storeToRef in pinia. 🤦😂
@TheAlexLichter
@TheAlexLichter 7 ай бұрын
I still would go for storeToRefs because you get refs, not „reactive“
@top10acousticshowslist77
@top10acousticshowslist77 10 ай бұрын
nice information not many people talk about this simple but important concept.♥♥♥
@TheAlexLichter
@TheAlexLichter 10 ай бұрын
Glad you think so!
@ricko13
@ricko13 11 ай бұрын
the .value thing is so annoying sometimes :/
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
I actually think it is useful When using TS the IDE should autocomplete it 🙌🏻 And then you know if the value you deal with is reactive or not 👌🏻
@杨磊-t6s
@杨磊-t6s 8 ай бұрын
I think you're left-handed 5:10
@TheAlexLichter
@TheAlexLichter 8 ай бұрын
I think you are right 😁
@kirayamato6128
@kirayamato6128 11 ай бұрын
auto import is not quite good. other devs will have a headache debugging or reading the code.
@TheAlexLichter
@TheAlexLichter 11 ай бұрын
I'd argue that it is the opposite. For me, importing ref/computed/... all the time even though it is obvious that it comes from Vue creates more noise in the code. And because TS intellisense + "go to" still works, I can easily check where things come from if needed. But you can also make it work without auto imports if you prefer it 😊
@mrleblanc
@mrleblanc 2 ай бұрын
Intro is too loud
Dynamic Components in Vue
14:30
Alexander Lichter
Рет қаралды 10 М.
The Difference Between Vue and React
10:27
Lachlan Miller
Рет қаралды 44 М.
The evil clown plays a prank on the angel
00:39
超人夫妇
Рет қаралды 53 МЛН
黑天使只对C罗有感觉#short #angel #clown
00:39
Super Beauty team
Рет қаралды 36 МЛН
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 120 МЛН
Conditional Properties in Vue.js
15:08
Alexander Lichter
Рет қаралды 3,5 М.
Vapor Mode is the Future of Vue
4:09
LearnVue
Рет қаралды 27 М.
How to Design an API Response that Doesn't Annoy
9:26
Neuronfire
Рет қаралды 949
3 Ways to Avoid Prop Drilling in Vue/React
9:34
Lachlan Miller
Рет қаралды 5 М.
You are using useFetch WRONG! (I hope you don't)
11:14
Alexander Lichter
Рет қаралды 38 М.
Coding a Web Server in 25 Lines - Computerphile
17:49
Computerphile
Рет қаралды 362 М.
Organize your Composition API code (2k subscriber special)
18:22
Alexander Lichter
Рет қаралды 27 М.
Common Mistakes in Vue js and How to Avoid Them - Daniel Kelly
29:49
VueConf Toronto
Рет қаралды 11 М.
Vapor: The Future Of Vue
21:27
Theo - t3․gg
Рет қаралды 128 М.
All Rust string types explained
22:13
Let's Get Rusty
Рет қаралды 200 М.
The evil clown plays a prank on the angel
00:39
超人夫妇
Рет қаралды 53 МЛН