If you want to skip review of Vue 2 options API, start video at 17:23
@maskman48215 жыл бұрын
This is the best vue-composition-api tutorial ever, I understand everything that Max explained and talked about !!!
@nyambe4 жыл бұрын
Max is simply the best 🎸
@RajaSekar-jw3tq5 жыл бұрын
That was a great introduction to Vue 3 max... But I feel it's too much for simple to medium vue apps as the Vue 2 syntax is more predictable where you can find ur data.... Consider a 100 data variables are there and for making everything reactive we need to surround everything with the keywords reactive and ref... It's crazy
@GungooseHonk4 жыл бұрын
Why not mimic data object with one single reactive variable in setup? setup() { const data = reactive({ products: [], show: false }) ... return { data, ... } } I really like this new composition API. Looking forward for Vue 3!
@sergiishilingov56094 жыл бұрын
@@GungooseHonk and what about all computed and watch elements in your component. Will you mimic it too? It's too many data inside one setup method and with those reactive, ref and .value it becomes more difficult to read.
@guibirow4 жыл бұрын
This is why is an alternative approach, use which one is best
@patrickc.61834 жыл бұрын
It does look a lot like React Hooks. I feel that the Composition API will become a de facto standard, and may take away most of what makes Vue feel intuitive...
@camillo85754 жыл бұрын
for what i understand the pro is that you can separate things in reusable javascript files
@KostasOreopoulos5 жыл бұрын
The new api is great. The proxy api enables reactivity, so you do not have to declare data and functions as different object properties which is great and now can easily split data and code. I am really curious how computed is implemented under the hood, basically how that function finds out which reactive data are used inside its body. The only way I can think of is parsing the body of the function and finding out which values are passed from the closure.
@davidzita14045 жыл бұрын
mabey, some regx ??
@MakeAppswithDanny5 жыл бұрын
Thanks Max, that’s a great intro and alleviated my confusion around the Composition API. I have to say, I’m not sure I like it. Seems somehow dirty and messy. I feel like a neater structure would be something like this: export default { compositions: { infoComposition: { data() { return { showInfo: false } }, methods: { // info methods } ..etc.. }, productsComposition: { data() { return { products: [] } }, methods: { // products methods } ..etc.. } } } And then just keeping all template syntax as-is. Maybe I’ll come around to it after using it on a complex app.
@MakeAppswithDanny5 жыл бұрын
Akifcan Kara thanks! 👍
@2002budokan5 жыл бұрын
Danny do you plan more courses for Quasar? All I know you have the only quasar-course in the planet and hence in Udemy. This alone is a wonderful Quasar intro, and well choosen classic Todo-CRUD app. But I struggle whenever I want to change the boring quasar layout. For example I want a bootstrap style dropdown menu (complete drop-down of the toolbar). I've tried with q-expansion-item (accordion) but the all other elements of the toolbar, centered vertically when I've opened the expansion-item. So I've replaced it with btn-dropdown. But I use expansion-item in mobile version of the menu. I wished however a common solution for both cases, etc, etc... For such nitty-gritty details one need more Quasar tips-tricks. Quasar is the best Vue framework and need more attention.
@MakeAppswithDanny5 жыл бұрын
Hi 2002budokan. I don’t want to hijack Max’s video. Can you please ask this on one of my videos. 👍
@KostasOreopoulos5 жыл бұрын
There is no reason for so much boilerplate. The main reason for splitting into data and methods in the he first place was to declare everything returned by data as reactive internally. Now you can just return a simple object, with data and functions and the data are already wrapped into a function making them reactive. This api is much simpler and will greatly reduce code duplication. It can also help reduce over splitting components just because this was the only way to split functionality
@onderogretmen5 жыл бұрын
Actually, there is no difference your solution between Max used mixins. Here is example making without using external .js files as you said. codepen.io/navi3591/pen/RwNGYEZ?editors=1011 Never searched deeply but I think, this syntax is not totally for just "make code prettier or reusable for developers", the biggest reasons are performance and typescript. I would be in love if there is a official way to make Vue.js + typescript + .net Core with SSR support from Microsoft :)
@christopher57315 жыл бұрын
I love Max's videos. The composition API seems like more arbitrary code for no real gain. I like vue for its simplicity and the ease of use and this new way just feels like more over-engineered JS
@superknife05125 жыл бұрын
This composition API make Vue more and more like functional programing style which is awesome (I really like it when using React) :3
@noherczeg5 жыл бұрын
Unit testing would have been a great addition.
@PhilipAlexanderHassialis5 жыл бұрын
First course I ever bought on Udemy was your Vue course. Your excellent delivery and subject knowledge has spoiled me and now I have to compare every course I watch with yours. I hope you are aware you are the gold standard in development courses. As always, your little snippet here doesn't disappoint in the least! I wait for the Vue course to be revamped or perhaps a brand new Vue3 one from scratch! Please, do a full C# course, I would pay gladly to watch you explain and demonstrate the intricacies of the language and its core mechanics.
@academind5 жыл бұрын
Wow, I really want to thank you for your wonderful words Philip, this means so much to me! I will update the existing Vue course once Vue 3 is final, got no plans on C# at the moment though.
@PhilipAlexanderHassialis4 жыл бұрын
@@academind Wow, thanks a bunch for this. Also, really, when your delivery, your preparedness, your explanations and your in depth analysis is compared to the rest of the instructors out there, most of them eat your dust, for real! I mean, sure, Brad (Traversy) does a stellar job too and some others try hard, occasionally. But you present stuff from all angles and cover everything so succintly that even when something gets updated (a la React pushing for closures/hooks everywhere) the knowledge and software depth one gets from your courses allows someone to clearly stay on top of the new developments. Excellent job, excellent. P.S. reconsider C#, I am aiming to slowly study it really well and go for the certification - and I know a course by you would be the ultimate preparation for it, so I am willing to pay top euro for it - i.e. I have only two kidneys but we can talk this through :P
@UsamaKhan-um3nr5 жыл бұрын
Max sir, you are the great teacher, I have learned VueJs, nodeJs and now I am learning angular 8 from your videos. your explanations and voice quality are awesome...
@mpu-easy95685 жыл бұрын
Hi Max, I am missing the link to the source code. It isn't in text below the video. Thanks!
@johnm83585 жыл бұрын
Awesome tutorial, one question why pass functions to child components? Thought we should use events to do this kind of thing
@waasar4 жыл бұрын
This composition API really fixes my main issue with the framework. After a while it could get really hard to keep track of all the different things going on inside big components. I'm looking forward to using Vue with this API for my next personal project.
@BenHayat4 жыл бұрын
If I understand composition API correctly, it can add more performance in reactivity mode due to ability to control it manually compared to Vue 2. This can be very helpful on older mobiles with less powerful CPU. One area that Svelte shines the most is in reactivity speed due to lack of VDOM and less automated DOM update.
@yackawaytube4 жыл бұрын
I don't know. Using a single setUp function to do several things - create composition parts; link reactive parts together, and returning the final "data" object smell. And how does one get dependency injection to work here? The irony here is that composition problem is one of the fundamental concepts of OOP and this has been solved over 25 years ago. The twist here is one needs REACTIVE composition and even that has been solved by Reactive frameworks. This setUp approach seems to reinventing the square wheel.
@msvmanikantasrivishnu77885 жыл бұрын
Max is max..💛 love max
@frankyb7025 жыл бұрын
Gary gaaaay
@msvmanikantasrivishnu77885 жыл бұрын
Teachers are next to god means Acharya devo bhava..not offensive word
@LarsRyeJeppesen4 жыл бұрын
Pretty clear by now that the Angular team was right in making Typescript default language. Everybody else now scrambles to move in that direction 2-3-4 years later. Same with Observables and Rxjs support.
@DerSpudi4 жыл бұрын
Looks awesome! I didn't really enjoy working with Vue 2 as much as I hoped to, but with the new Composition API and better TypeScript support, I'll surely give Vue another chance (once it's out).
@RorySilva4 жыл бұрын
A lot of jealous React fanboys acting like Apple fanboys (every time Android comes out with a feature). FYI: Hooks existed many years before React was created. Act like you knew.
@anthoniG4 жыл бұрын
If I could give you more than 1 thumbs up I would
@RorySilva4 жыл бұрын
@@anthoniG it's annoying because I just come here to learn. I definitely don't waste my time bragging about Vue over in the React forums. What good does that do?
@anthoniG4 жыл бұрын
@@RorySilva Well people are weird lol. With some if you are not using a framework than them they get antsy. It's like Android and iOS all over again :(
@JakobBjerrePetersen4 жыл бұрын
What about us misunderstood EmberJS fanboys? 🙄☺️
@iamrorysilva4 жыл бұрын
@@JakobBjerrePetersen The right tool for the job! Can you solve the problem? Create a solution? In a reasonable amount of time? Go for it!
@BookOfSaints4 жыл бұрын
I love functional programming, but I agree that this is a lot for even medium sized apps. Personally, I can see the value of this if you're creating a new project knowing you will have a lot of reusable code and large components. I have definitely struggled with data readability in larger components. Otherwise, I feel that the options api is better for me. Regardless, this is an incredible addition and goes to show just how much the Vue team cares about their framework and users.
@lizzi42895 жыл бұрын
2AM KZbin: Do you want to learn some Vue 3 new api Me: Click
5 жыл бұрын
Vue devs: Vue is simpler than React Vue authors: hold my coffee... 😂
@FilipCordas5 жыл бұрын
Devs: I don't like react I think I will use cue author's: Are you sure you really should be using react.
@mortenfinkbuchhave6415 жыл бұрын
yeah my thoughts exactly... there goes the simplicity out the window :D
@RorySilva4 жыл бұрын
This is optional. You can build Vue apps just like before.
@RorySilva4 жыл бұрын
@@mortenfinkbuchhave641 It's optional
@RorySilva4 жыл бұрын
@@FilipCordas It's optional.
@jeremybrews25215 жыл бұрын
A question: Will your vue 2 course be updated to vue 3 or will there be a new course?
@academind5 жыл бұрын
The current course will be updated once Vue 3 is final.
@aArcziMetin25 жыл бұрын
@@academind im not into the courses anymore BUT props to you for doing that.
@ArnaudMEURET5 жыл бұрын
Congratulations on a very well structured introduction to VueComposition API. I’m not sold to it however and it seems a high price to pay just to maintain some backward compatibility. These new levels of indirection and hidden magic traded for some lexical practicality... meh. I would have preferred if they broke the whole model and fused all this with VueX stuff in a really elegant approach. That is what major versions are for. This should have been 2.8.
@DEVDerr4 жыл бұрын
Finally normal functional-way of writing things in Vue. Thanks Evan! ^^ The only thing I didn't like in Vue were the options, where you were limited to pass only object/array properties and nothing more
@NatDunn2194 жыл бұрын
Looks awesome! What did you do in VS Code at 23:05 to get the return object to format nicely? Is that an extension?
@cotkhumno14 жыл бұрын
prettier.io/
@mvrdara5 жыл бұрын
thanks max is vue 3 still in virtual dom or kanda like svelte
@flogginga_dead_horse40225 жыл бұрын
This is interesting, I'm wondering how this works with Vuex though. Thanks.
@brunonogues51285 жыл бұрын
Yeah good question !
@flaviokonti55224 жыл бұрын
Only with vuex 4.0, it's in git repo separate branch
@nyambe4 жыл бұрын
Flavio Konti I use vuex a lot. With something like this, might not need it as much
@joshuaogunbo64545 жыл бұрын
How do you use the composition api with Vuex
@TheNerdyDev5 жыл бұрын
Max is Infinity. Superb stuff always.
@anandbaraik50105 жыл бұрын
You too bro. Your videos too always has deep information.
@TheNerdyDev5 жыл бұрын
@@anandbaraik5010 Thanks man. Means a lot.
@USONOFAV4 жыл бұрын
I'm still in a wait and see for Vue in terms of creating a large and scalable enterprise application. We evaluated for Vue and Angular last year for our large application and opted to rewrite it in Angular 8 and upgraded to Angular 9.
@olivier11165 жыл бұрын
With this API, writing vue code now looks a lot like React with React hooks
@wobsoriano4 жыл бұрын
and that is why I just switched to React. Because of also the work demand
@aan33874 жыл бұрын
Only for simple things, but if you work on something real then you'll appreciate Vue's composition API mainly because maintaining dependencies with react hooks becomes a nightmare. In my opinion the best thing about Vue is its reactivity system (which ironically doesn't exist in react), this becomes more apparent when using react hooks and comparing it with Vue's composition API. The only reason I would even consider using React instead of Vue today would either be: 1. React is more popular (has more jobs) 2. or some React only libraries which might be critical for some projects (like Drafjs or Slatejs). None of which are technically React pros or Vue cons.
@centuxdevelopment54194 жыл бұрын
@@aan3387 Tiptap seems like a good replacement to Slate and Draft js.
@vahdetk4 жыл бұрын
You were not passing functions as parameters in Vue2 courses. So, why did you prefer it here: For brewity? In the absence of a Vue3 compatible Vuex? Or isn't it not an anti-pattern anymore?
@alisherakbaraliyev43894 жыл бұрын
which screen recorder do you use to making your videos) I'm also want to make tutorials in my country) Uzbekistan
@johnm83585 жыл бұрын
Will there be a point where old syntax won't be supported
@ernstmayer38685 жыл бұрын
Thanks for the introduction. Quite an interesting new mechanism. By the way, there is no need to define a 'isValid' variable within the isValid computed function. You can just return false if the conditions are matching and 'true' after all tests.
@ДмитрийКарпич5 жыл бұрын
Aha! Somebody get ridden "low coupling, high cohesion" and really think about it! :) Thank for this tutorial, its great! And it's totally clean for non-native speakers.
@RobertAxelsen4 жыл бұрын
You mentioned that there is a link to the starting project below the video, but I can find nothing in the description? Is there a repo with the code anywhere?
@gamechannel12715 жыл бұрын
Organization isn't a problem in typescript Vue applications, as everything is stored in a class with decorators used to define watchers, props, etc.
@boliu50514 жыл бұрын
great explanation!! but I am a little confused about why we don't need to return { isValid : isValid.value } at the end of ProductForm.vue setup method.
@nyambe4 жыл бұрын
Very powerful, you can’t go back once you learn it. Is it ready for production?
@ChaitanyaBhagwat4 жыл бұрын
You might want to revisit the concept of the exclamation mark :P
@davetarantula58514 жыл бұрын
Finally i understood what the composition api is. It's like React Hooks... don't like it, i hope i will not be forced to use it 😃 but really thank you, your explaination is clear and i really understood everything, you are the number 1!
@kisisel4 жыл бұрын
Thanks for that great course! But I couldn't see the start code link below the video. Regards!
@cecitorresmx4 жыл бұрын
Love it! I could fastly learn advantages and how to use the Composition API. Thanks Max!
@johnm83584 жыл бұрын
is passing functions as props not considered anti pattern?
@kenw32495 жыл бұрын
if you check out the source code for 3.0, they are using js meta programming Proxy
@RPGio-vp7je4 жыл бұрын
@Academind There doesn't seem to be a link to the sample project in the description any more...
@RPGio-vp7je4 жыл бұрын
Followed all of the links and none of them are the starter code... :(
@Redrivercity5 жыл бұрын
I didn't get yet what is the real advantage and difference using vue composition vs mixins. I can encapsulate all my logic and methods and separate it with mixins.
@parasou794 жыл бұрын
Your Tutorials are very nice.kudos.Have some queries/comments 1. Passing a function to child component and executing in child scope doesn't look good to me 2. Mixins are good for vue. 3. I think you should have had a separate login component there 4. Why did vue team ignored mixin aliasing concept, instead they created this composition api? Something like an instance of that toggleMixin with a name say login and then use login.toggle() and login.show
@noopurp1234 жыл бұрын
Hi Max, Where is the link to starter project?
@sandorkepiro73364 жыл бұрын
Hi Max, an amazing tutorial (as always) I'd like to ask what do you think, is the composition API production ready already or should we rather wait until it's released in Vue 3.0?
@marvinkweyu52064 жыл бұрын
How come I can't see the starting project link. Was it scraped or something?
@wordonice44574 жыл бұрын
My jury is still out on this. I suppose when I start building much bigger apps with Vue, I will come to appreciate the composition API. Nevertheless, it is a wonderful addition to the features on Vue
@brunonogues51285 жыл бұрын
Thanks from France ! Very good explanations, I use Vue only since 2-3 months and the organization of the code is a real problem for me (go to the data, and after to methods, search where is the function corresponding to my data etc..) That's boring, and these new features are perfects for me! Sorry for my english lol
@fooked14 жыл бұрын
Is it possible to use the the class syntax?
@DenisDontsov4 жыл бұрын
Could you provide an example how to work with $store, $router and etc, without access to this? Should I import this via `import store from './store'`?
@dominiclapitan84664 жыл бұрын
Thank you for your help Max! Really appreciate these videos especially your efforts. Thank you!
@academind4 жыл бұрын
Glad you like them, thank you!
@danialsafaripour78474 жыл бұрын
Hello, Where can I found starter and finished Project file?
@Andrey-il8rh4 жыл бұрын
Could someone post a link to the initial project Max is using?
@mikemargerum64415 жыл бұрын
Great video. Thanks Max. At this point I may as well switch to react. The reason I chose Vue was for the syntactic magic and less ceremony code. If I'm going to treat everything like pure functions then why use Vue at all? Svelte may be a nice replacement too. Much more idiomatic IMO.
@luigioctaviano4 жыл бұрын
Basically, almost all of the lifecycle functions that were used in Vue 2 will be wrapped in the setup() function. I think this is good. Just wondering what will happen to the $data function...
@yasser.dev74 жыл бұрын
you really a great teacher and this is the best channel in the world ,thanks very much for your great effort.
@NellyMoseki4 жыл бұрын
Thank you, finally understand the api's use!!
@2002budokan5 жыл бұрын
Max you're full of action and always up to date; so thank you once more for all your great videos and your very detailed master-piece Udemy courses. I didn't like the new API. I don't think it will be a success story. You say, useful for bigger components? Well, we should fight against bigger components. When a component becomes bigger, we should refactor it. Divide it to subcomponents, js modules etc. To me the Vue is the "Love at first sting", but I don't think that the new API is necessary. Lastly, what do you think about the Danielo515's and olivier delmas comments below?
@2002budokan4 жыл бұрын
@no1youknowz Today I'm quasi forced to use the new API, 'cause I want to implement a component with XState inside. They provide two different methods for the injection of their Machine (StateChart) into a vue component. The first one using the old API, and the second one with the new composition API. And liked the injection via setup() method. I think it will take some time to get used to it.
@arturpasnik5 жыл бұрын
Hi Max Brilliant as always :) One quick question I have onMounted where event is getting data - my local LET variable is let club = reactive({}); how to set in one go variable club = data. It works if I define all properties first but I dont want that I just want pass object to let club = reactive({});
@arturpasnik5 жыл бұрын
BTW it works IF I do: let club = reactive({ data: null }); and then in event club.data = data; BUT I dont want ot have extra club.data.id but club.id
@bartekbrodzik71345 жыл бұрын
Some time ago I stumbled upon an article , which stated you shouldn’t pass functions in props, because there are emitters for that in Vue.js. I’ve never thought about it so much, but what do you think Max? I see that you do it here in the video and I was just curious :).
@academind5 жыл бұрын
I did it here because I'm so used to it from React. You absolutely could use an emitter - I'd argue both is fine. You just have to be consistent. I do use both, depending on the project I work on.
@bartekbrodzik71345 жыл бұрын
Academind thank you for an answer man! Have a great day and keep on doing such a great work :)
@amitavroydev4 жыл бұрын
Great video and very nicely explained. Thanks a lot.
@stabgan5 жыл бұрын
everything is bouncing above my head. I always use pure js and I know ionic. Which is best for beginner to start among all react , vue , angular , nest etc ?
@2002budokan5 жыл бұрын
Don't hesitate to choose Vue, it has smoother learning curve and beloved by developers.
@gonzoartemis25034 жыл бұрын
I had the same question a couple of years ago. I chose Vuejs. I am happy I made the right choice.
@mrrolandlawrence5 жыл бұрын
i am way too excited for a normal healthy life about vue 3 coming out!
@GuitarAge4 жыл бұрын
Great vid as usually! Thanks a lot ! But i think it's better to stick with traditional vue approach until next version release and then all the things should be at right place. Now it looks like vue2 + comp-api = (rather)pain in s.
@shutterradio4 жыл бұрын
Cool! Can't wait to use it in prod
@lucastitokotaranin73034 жыл бұрын
Yo! Your english improved. Have an old VUE course as reference. Keep your great content and courses coming.
@Danielo5155 жыл бұрын
Why would you fire the poor toggle product info? Has her performance decreased?
@DenisDontsov4 жыл бұрын
Why do you send function to the component as prop? It's not a good practice. Why don't you use "events"?
@woshisheili15414 жыл бұрын
What is your vscode theme?
@LikeAndFavBF35 жыл бұрын
Vue 3 course maybe Max, like the update to typescript you did for 2019
@academind5 жыл бұрын
I will indeed update the existing course as soon as Vue 3 is final.
@ask43242flight4 жыл бұрын
where can I download the source code? Thank you!
@alwaysgrowww5 жыл бұрын
I really really thank you for this video. Happy to see you creating videos for vue
@yves25224 жыл бұрын
Thanks a lot, it makes me more confident to migrate to Vue3 ;-)
@khrazy51505 жыл бұрын
When I do vue --version I get 3.8.4 as of December 12, 2019. So why do you say "vue 3 is not out yet?"
@flogginga_dead_horse40225 жыл бұрын
Is that your CLI version?
@khrazy51505 жыл бұрын
@@flogginga_dead_horse4022 Oh, that's it. That command is used to check the vue cli version, not Vue.js version itself. Thanks.
@rohitkrishnan54565 жыл бұрын
I smell react hooks
@TheNerdyDev5 жыл бұрын
Yeah it is just a replica of react hooks. Every framework is inspired from React. React is Godd
@oyejohnson5 жыл бұрын
@@TheNerdyDev I am starting to regretmy choice of starting my app with vue
@TheNerdyDev5 жыл бұрын
@@oyejohnson ohh.
@oyejohnson5 жыл бұрын
@@TheNerdyDev I am sticking to next and react
@carlosmariosarmientopinill20195 жыл бұрын
@@oyejohnson I use nuxt and vue and haven't found a reason to change. Vue of course is based on other frameworks (Svelte too), but it does it better! (read the comparison between these hooks and the react ones)
@fredhair4 жыл бұрын
Vue 3 looks great! I really dislike how Typescript and JavaScript work together on the web. Seems to me (coming from a static/strongly typed & compiled language background) the best advantage of strong typing should be better performance.. js should be an add on for Ts. Since we're all usually transpiling our code already we're kinda getting the worst of both worlds -_-. I really hope web assembly will help solve this crap in future. Sorry for the off topic comment! Great video nonetheless though.
@onlineuniversity37184 жыл бұрын
I found style of writing composition API partially similar to the Reveling module pattern.
@sjr20995 жыл бұрын
Rewrite under the hood and your code won’t change? Angular team should learn with them. Oh I forgot Angular team doesn’t care...
@Dipenparmar124 жыл бұрын
Thanks for your great efforts.
@Kanexxable5 жыл бұрын
Are you going to update the Vue course or make a new one
@academind5 жыл бұрын
I will update the existing one.
@MarcelNogueiradEurydice4 жыл бұрын
I really like Vue.js, but I am not convinced with this new composition API. Maybe my opinion changes with time.
@ElTexMexAlex4 жыл бұрын
I didnt even know vue 3 is new, until now.
@stephan242974 жыл бұрын
it's now past halfway in 2020 and it seems vue3 still hasn't come out as the default stable version. maybe in q4
@RahulKumar-yh4ui4 жыл бұрын
Check news section on their site, it comes in august!
@keithnicholas5 жыл бұрын
Thanks for this! Nice intro to the composition API
@thichgilamnay76155 жыл бұрын
why change name Lifecycle function ? onBeforeUpdate, onMounted, onUpdated .... name is long
@lschnoller24 жыл бұрын
Thanks Maximilan, you're the best!
@mahsamiiiir4 жыл бұрын
Hi there what's your Vscode theme!!!!
@academind4 жыл бұрын
Dark+ :)
@mahsamiiiir4 жыл бұрын
@@academind Thank you so much i'm in love with that theme
@TalalSuhail4 жыл бұрын
Great work as always !!
@levi4thon4 жыл бұрын
Vue 3 has just been released!
@layou325 жыл бұрын
Hi max, big fan here. On the first look it seems to me an organizational code upgrade, let's give it a shot. You're insame broh!!