this entire series is extremely intuitive to follow
@izzatullokanoatov3704 жыл бұрын
Yeah, I am that sort of person who puts "like" first before watching The Net Ninja videos. Damn man. Awesome series )). Love watching
@DaveStewartLondon2 жыл бұрын
This is great. I'm an experienced Vue dev wanting to get up to speed on Vue 3 quickly, and this covers everything I would have covered if I was going through the docs myself. Thanks!
@ILoveChocx33 жыл бұрын
Hey Net Ninja, just wanted to express my appreciation for the in-depth tutorial series you've created for us! Just wanted to give a little feedback to perhaps include a walkthrough on provide and inject which would really wrap up your already stellar Composition API tutorial.
@BullWinkleBull3 жыл бұрын
Man, you are the best Vue teacher ever! With great British accent as a bonus! Thank you a lot!
@qhphan53 жыл бұрын
For the db.json file: { "posts": [ { "id": 1, "title": "Welcome to the new blog", "body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc consectetur felis libero, in porta magna vestibulum eget. Suspendisse malesuada dui in ligula imperdiet pharetra. Vivamus felis nisl, gravida non porttitor eget, molestie sed lorem. Integer finibus dui arcu, nec egestas nulla posuere nec. Quisque eu ex nec dolor egestas condimentum ac ac nulla. Phasellus ut cursus ligula. Etiam vel laoreet erat. Vestibulum sit amet erat id velit sodales efficitur id in sem. Quisque ac cursus nunc. Aenean feugiat ex metus, at tristique elit accumsan eu. Nam placerat dolor sit amet lorem aliquet congue.", "tags": [ "webdev", "coding", "news" ] }, { "id": 2, "title": "top 5 CSS tips", "body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc consectetur felis libero, in porta magna vestibulum eget. Suspendisse malesuada dui in ligula imperdiet pharetra. Vivamus felis nisl, gravida non porttitor eget, molestie sed lorem. Integer finibus dui arcu, nec egestas nulla posuere nec. Quisque eu ex nec dolor egestas condimentum ac ac nulla. Phasellus ut cursus ligula. Etiam vel laoreet erat. Vestibulum sit amet erat id velit sodales efficitur id in sem. Quisque ac cursus nunc. Aenean feugiat ex metus, at tristique elit accumsan eu. Nam placerat dolor sit amet lorem aliquet congue.", "tags": [ "css", "webdev", "coding" ] } ] }
@QuyenTran-wu8pj3 жыл бұрын
thank youuuuuu
@vdeschuy1903 жыл бұрын
Hero!
@samueladeniran12863 жыл бұрын
Thank you so much
@teshell83173 жыл бұрын
Thank you bro
@vuedev63242 жыл бұрын
Legend
@pyplacca3 жыл бұрын
Wish I could give your tutorials a million likes. Thanks a billion for being such a great tutor ❤️
@mark_midnight Жыл бұрын
Finally after some inconsistent days of learning Vue, I finished it and will still be Thankful for this wonderful course to start learning, although this course is 2years old I still pick offs some stuffs to learn and will continue to dive in composition API with the script setup again super Thank you for this free courses here in KZbin godbless :)
@NetNinja Жыл бұрын
Thanks for watching and taking the time to comment this :)
@GurmuGessese5 ай бұрын
Thank you very much, net ninja. I have finished all this vue js 3 playlists and learnt a lot from you. You explain everything in detail, Thank you again!
@NetNinja5 ай бұрын
Glad to hear that :) thanks for watching Gurmu!
@jakubzomerfeld21593 жыл бұрын
Great attitude and perfect style of explaining everything from global info towards details. :) already bought Your 2nd course. Worth the money. Thank You! Keep doing Your great job!
@mikloskontra19819 ай бұрын
The best course on vue I ve seen so far!!
@NetNinja9 ай бұрын
That means a lot, thanks! :)
@jarednartates35713 жыл бұрын
I don't usually comment, but these vue 3 videos are very good and very helpful! thank you shaun! :D
@nyambe3 жыл бұрын
I clicked the link and bought the course even if I have already seen the series. I am very thankful for this info. I also got a course on D3. thanks again
@NetNinja3 жыл бұрын
Thanks so much, I really appreciate it :)
@pranav-kale4 жыл бұрын
Gr8🔥... Was waiting for the vid
@GirishBisane-d4f Жыл бұрын
Just cleared all my concept. Thank you making me fall in love with vue.js
@NetNinja Жыл бұрын
Glad I could help!
@Carl-yu6uw4 жыл бұрын
Another good intro series, thank you. Guess next level here is the data from / to dB and also being shared across components via a store. Would be interesting to find a case study slice through of real heavy / prod example of a vue app, but appreciate that's not training content as such.
@dennisbarnaja41733 жыл бұрын
Appreciate your tutorials and effort. God bless you!
@94praneeth4 жыл бұрын
Awesome lecture. Just finished watching it. And occasionally will watch here and there to fill some gaps in my memory. :P Anyway; love the videos. Stumbled upon your 2 years old lesson accidentally on a friend's hard disk. Watched here and there and didn't meant to copy those to my laptop. Bored with only doing server stuff wanted to learn some JS. So copied it! And BAM...! Now i know some Vue3 too. Finally, I'm grateful that i blindly copied your JS tutorial (there were many folders). Because now i know a great teacher to follow. Thank You. Live Long and Prosper!
@jakemaughan38182 жыл бұрын
Your a saint! Would love to see a MEVN stack tutorial from you!
@lobobogard92363 жыл бұрын
I was looking many tutorials about composition api but in all the tutorial explain the same and the same for me was not sense for why to use but here I found "Reusable composable functions" for me is the key for why exist composition api to much thnx for this tutorial from mexico
@akires472 жыл бұрын
Excellent tutorial so far, just a comment in 25:10 if you want to check the loading messsage, you can use 3G speed on the network tab and that force the API (json server) to be slower enought to see the message.
@usmanmughal59164 жыл бұрын
The Great Ninja
@NolanNonprivate10 ай бұрын
Thanks for this great course! Had fun learning it.
@NetNinja10 ай бұрын
Great to hear! :) thanks for watching
@canklc577211 ай бұрын
Thanks to Shaun, I scored my first official developer position ❤
@NetNinja11 ай бұрын
That's awesome! :) congrats!!
@canklc577211 ай бұрын
@@NetNinja 🙏🙏thank you Sir
@iamcookbook3 жыл бұрын
Love your videos. Very clean explanation.
@zenmasterfu2 жыл бұрын
To see the loading message in action, use the --delay [time in ms] option when starting the json server. I use 200 ms.
@johncardozo4 жыл бұрын
I watched the whole 12 videos in the series and I think they're awesome. I will buy your Udemy course for sure. Thanks for such a very well explained material. I just have a question: wouldn't be better to call load function inside onMounted function than calling it inside setup function? What would be the difference? Thanks again
@johncardozo3 жыл бұрын
@Chidera Ugo thank you 👍🏼
@nyambe3 жыл бұрын
I am finally making sense of the composition API. I was thinking... what is the big deal? this is hugeeee
@push2me9362 жыл бұрын
thanks a lot Jonin Shaun! I'll see you on udemy! Best regards your Chunin Andreas
@ccaiuss2 жыл бұрын
The best of the best !
@abdulkadirguven11732 жыл бұрын
At 16:00 you should install "json-server" globally by "-g" option.
@rizadwiandhika92532 жыл бұрын
actually you don't need that.. you can just stick install it locally ("npm install --save-dev json-server"), then add another scripts in the package.json file to execute `json-server` command. e.g (in my package.json): { // ... "scripts": { // ... "simulateApi": "json-server --watch data/db.json" } } and then run: "npm run simulateApi"
@krisosei8079 Жыл бұрын
Good job bro👍👍
@farnaamsamadi53864 жыл бұрын
Thank you Sir. It was a great series.
@_isaac_muniz_2 жыл бұрын
Very cool series. Thank you veery much :))))
@TheBrownBox3 жыл бұрын
you're amazing!!! Thank you so much!
@ayabo1192 Жыл бұрын
Hello, thank you very much for this course! In 14:47 , you recommend checking out one of the last videos in the last chapter of this course to get familiarized with the basics of async and await. However, this seems to be the last video of the course on youtube, is there another video I'm unaware of, where I can find that topic? Thank you in advance!
@gunnarkieck20633 жыл бұрын
Thank you. Amazing explanation!
@kelvin5132 жыл бұрын
Thanks for the explanation! The Vue Composable is literally a clone of React Hook concept
@fredpourlesintimes2 жыл бұрын
A lot of things to explore :)
@wasmithee2 жыл бұрын
Saun, Great stuff!! Just a recommendation: at 24:28 Perhaps it would be better to only show the "Loading..." string _only_ when there isn't an error: ``` Home {{ error }} Loading... ```
@jacklong21822 жыл бұрын
VERY GOOD! THANK YOU!
@69leostereo3 жыл бұрын
more awesome material ...
@issaissifou49592 жыл бұрын
Thank you so much!
@erikseferi22413 ай бұрын
Hello thankyou for your good explanation. While i was working on this tutorial with the Dojo Blog, at the Create.vue file you had the version of handleKeydown event like this --- const handleKeydown = () => { if (!tags.value.includes(tag.value)) { tag.value = tag.value.replace(/\s/g,'') // remove all whitespaces tags.value.push(tag.value) } tag.value = '' } ---- which will move all the spaces so if you have " web dev " it will replace it to be "webdev" and you are checking if it includes before updating it which if i put another webdev with 4 spaces after it will still add to the array of tags. my suggestion would be to make it like this: "const handleKeydown = () => { const trimmedTag = tag.value.trim() if (!tags.value.includes(trimmedTag)) { tags.value.push(trimmedTag) } tag.value = '' }" insted of moving all whitespaces to trim it and check if tags includes the trimmedTag. Your videos are so amazing that are even improving my logic to find better solutions. Big thankyou :D
@batra.vivek8011 ай бұрын
Hi Shaun, a quick question. May be I am overlooking something. I am looking at your repos on the github and trying to find out some code for instance this tutorial. I see every thing on the repo is a lesson number. Is there a way to link the KZbin Tutorial with github folder names? Thanks
@OsamaMaher2 жыл бұрын
great effort, thanks
@NetNinja2 жыл бұрын
Thanks for watching Osama!
@seppeclijsters64333 жыл бұрын
Thank you soo much!!
@renanmalato2 ай бұрын
why fetch single post if all posts were already loaded in the posts page? shouldnt be just pass the post object? is it about performance? im curious
@alsiyonealternate4 жыл бұрын
I have a question, does the Chrome Vue extension work with the composition API? What about Vuex, is mapSetters etc working with composition API?
@alexandrepellegrino26994 жыл бұрын
great, waiting for vuex, sensei.
@venkychowdary4 жыл бұрын
did u tried to learned vuex any where??any good source u found??
@alexandrepellegrino26994 жыл бұрын
@@venkychowdary nope
@srajeshtuladhar49712 жыл бұрын
Just curious if there is a github repo to this? The one in the description is fo the Udemy course I think using Vue and Firebase
@derekbressler91544 жыл бұрын
vue is the best
@jasonjjavier6693 Жыл бұрын
One thing that I've noticed is if you use v-show it will go to OnUpdated function. V-if stops the render but v-show will just hide the element but still render so, that's why it was updated.
@JamesMorgan23 жыл бұрын
Hi Shaun, If you've already pulled down the posts data, would it not make more sense just to pass those values to the details page rather than going and fetching the data again once the link is clicked? I understand you're using it for an example, but what would the best practice be? I guess one is faster, the other guarantees the latest data?
@Devilman912 жыл бұрын
Hi Shaun, thanks for valuable material. I just want to ask you about this chapter. Is not a better idea to fetch data by onMounted lifecycle hook instead in setup? Can you explain difference?
@derekbressler91544 жыл бұрын
vue is the best!
@hassaniqbal61994 жыл бұрын
agree
@derekbressler91544 жыл бұрын
agree
@JediofPool4 жыл бұрын
In the middle of this I all of a sudden starting get CORS errors. I've previously bypassed them in FF. I can't seem to find a solution. I was 20 minutes from finishing these demos! Any help? I'm on a Mac.
@angelosarnaoutis63914 жыл бұрын
Search for a CORS extension.
@东风西渐3 жыл бұрын
Open the client with"localhost:8080", DO NOT use the "x.x.x.x:8080"
@easycodingwithbg47318 ай бұрын
Hi Bro, how r u ? hope u r all right! Well bro , you posted the last video of vue js about the composition Api, but there is an issue with me on that video, when i start implementing the code from the video in vs code it shows me nothing on the web browser and also in the setup function the props are also not working ,, please give me solution about this, i'm just trying it for the last two weeks
@samuelnmeje3 жыл бұрын
Are composable not the same thing as mixins ????
@fun3s2 жыл бұрын
Hi Ninja, been following your tutorial to get started into Vue, great stuff! Quick question, I've implemented the logic you show in the video in a small project of mine, for querying data (composable file etc.). The question is, how would I write the statement in order to use the same composable function to query a different data set, in the same vue file? Lets say I want to retrieve another dataset after an onClick event. Again, great stuff and many thanks for your content
@fun3s2 жыл бұрын
Hi, I managed to solve my issue, and thought that I should also post the response here, for someone else to potentially benefit from it. You created getPost = (id) => { etc. I moved the argument to the load function as below: const load = async(id) => { etc. and now I can call the load function with different arguments in an event handler. Thanks again for your content Ninja!
@sathvikmalgikar28422 жыл бұрын
Jai Net Ninja.
@ataraxia04204 жыл бұрын
I don't have the luxury to buy the course, I know the course is not that much for its price but I'm pretty much broke right now. I just wanted to ask what I'm still missing after following up to this 11th tutorial so I can try to learn it myself.
@sheraizaTVАй бұрын
so, what is the purpose now of the mixin?
@santosgabrieldario4 жыл бұрын
const posts = ref([ { title: "welcome to the blog", body: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce in imperdiet nisi. Vestibulum eu dui dictum, ornare est non, dignissim dui. Donec at ex nulla. Aenean sem tortor, bibendum ac accumsan vel, elementum vel turpis. Nam auctor egestas pulvinar. Aenean placerat finibus finibus. Praesent dictum velit at purus aliquam, sit amet mattis est molestie. Duis a nulla et mauris luctus feugiat nec cursus odio. Nam elementum vitae est eu porttitor. Nulla vestibulum gravida magna eu ultricies. Nunc posuere tincidunt pellentesque. Sed id condimentum nisl, ultricies viverra orci. Fusce sit amet massa ut nibh feugiat elementum ac id est.", id: 1, }, { title: "top 5 CSS tips", body: "lorem ipsum", id: 2 }, ]);
@laraibanwar16183 жыл бұрын
Lauda lahsan
@Viralplace2 жыл бұрын
you don't say that can put the attribute setup inside the tag
@adriatic1233 жыл бұрын
The part about Reusable Composable Functions (25:20) describes the unnecessarily complicated process. The solution could be done simpler and simplicity in coding is always the preferred way. We could mimic the Angular separation of concern principle, where we put code in service files, code that is responsible for communication with the server and obtaining data, and simply import those files into components where needed. Data should be fetched directly in the service file and only imported as data where needed, no need for executing load() function inside setup() in Home.vue component. The described way is not the best way of doing this
@pb94053 жыл бұрын
I disagree, importing functionality only is the most intuitive and expected behavior. If you want to cache the loaded data as you described, you could do so using a store. With a system such as service files you have components which have both data and functionality
@nobigdealllll3 жыл бұрын
Hi Shaun, great video as always. However, I just wonder the examples would mean so many reads from the database. Would there be alternative in Vue 3 like Vuex in Vue 2 you demonstrated, that array of data can be put into "states" like posts for future use?
@nyambe3 жыл бұрын
You sure can, however with the composition API, you might be able to bundle all the logic together and the pass values via component and return then with emit. Its a great way to keep track of values. An alternative to vuex
@peterinvestor2 ай бұрын
why componenet updated was not ran when we toggle posts? showPosts data is changed from TRUE to FALSE so data is updated and also showPosts is reactive variable?
@adadaprout3 жыл бұрын
I don't understand how the load() function, defined in getPost as an asynchronous function, doesn't need to be called like this: "await load()" (and thus the setup() needing to be async). Could you kindly explain ?
@esutana3 жыл бұрын
load is async means that the execution of load() would not block the programming flow. actually it returns a object Promise and continue coding in setup() to return the object for vue setup. You don't need to await it because it updates the values of "refs" and such update will trigger the component update.
@janmichaelbesinga38672 жыл бұрын
The moment I found Net Ninja, I became a net ninja disciple.
@ivan337764 жыл бұрын
Just of curiosity, why did you decide to fetch individual post by ID instead of passing whole post through the props?
@angelosarnaoutis63914 жыл бұрын
It is not a parent-child relationship, it is a different route. So to do what you say, you should pass every single attribute in the route. Something like that /posts/:id/:title/:body/:tags
@ivan337764 жыл бұрын
@@angelosarnaoutis6391 maybe I wasn't clear) to show post preview you have to fetch all posts. If you can pass a post ID (string) as a parameter into the router view, why can't you pass whole post (object) and deconstruct it there instead of fetching again? In case of high load system it will save a lot by not making requests for individual posts.
@angelosarnaoutis63914 жыл бұрын
@@ivan33776 This route's path is "posts/:id", so he can pass only id as a route parameter. If you want to pass the whole object using route parameter, the best thing I can think is to encode it with base64 and send it as a single route parameter.
@ivan337764 жыл бұрын
@@angelosarnaoutis6391 watched that part again) now I see what you meant. My mistake)
@angelosarnaoutis63914 жыл бұрын
@@ivan33776 Glad that i have helped.
@reinoutko2 жыл бұрын
At the very end of the video, I can navigate to the new page with the id and it shows up in the page, however I still get an error in the console: Uncaught (in promise) TypeError: load is not a function at setup (Details.vue?b14c:28:1)
@asheaven1st2 жыл бұрын
It is because you do not have a 'load()' function on your imported composable
@AmmarAlmuain2 жыл бұрын
when u stat to write const load why u use this way i mean why don't you just use fetch or axios? or its even currect to do like this?
@vannhatnguyen4982 жыл бұрын
i don't see to show detail post ?
@vannhatnguyen4982 жыл бұрын
i'm code follow you, but show detail post not working, because missing .
@asheaven1st2 жыл бұрын
@@vannhatnguyen498, You must: import {router-link} from 'vue-router'
@yifanwang894 Жыл бұрын
Celebrate the achievement
@reinoutko2 жыл бұрын
The last bit with the reusable code is a little complicated
@christophervradis72854 жыл бұрын
Having load inside getPosts makes no sense for me, why dont we just make getPosts async and do the functionality as intended on the data in there?
@christophervradis72854 жыл бұрын
then you can just invoke getPosts - retrieve the return result (posts) by destructuring with all the data already there, no need to invoke load on the same data you destructure
@ridl274 жыл бұрын
ty.
@danielwarzecha2007 Жыл бұрын
gosh it'd be awesome if for each video you would tag which 'lesson' it corresponded to on github
@usmanmughal59164 жыл бұрын
So now no more vue projects?
@NetNinja4 жыл бұрын
Probably will be in the future.
@Mersal-uj5nh4 жыл бұрын
I think mixin is what your saying as compoubles.
@manu144x6 ай бұрын
I'm still not convinced the composition api is worth the complexities vs the options api and just using mixins properly.
@Gandobilis Жыл бұрын
@LKS253 жыл бұрын
How ends your voice? after talk like that.. thanks its amazing your work.
@bekchanovbotir24744 жыл бұрын
subtitles?
@danielwarzecha2007 Жыл бұрын
p.s. in your free youtube videos, you don't talk about async or await for us to watch previously