Skip to content

Instantly share code, notes, and snippets.

@chamberlainpi
Last active August 12, 2018 13:12
Show Gist options
  • Save chamberlainpi/d90602c9e2056d5809ac286fbbaa8cc7 to your computer and use it in GitHub Desktop.
Save chamberlainpi/d90602c9e2056d5809ac286fbbaa8cc7 to your computer and use it in GitHub Desktop.
Pierre's review of Adam Wathan's "Advanced Vue Component Design"

Pierre's Review of
Adam Wathan's Advanced Vue Component Design

I've been using Vue for a little over a year now. It's my first "watchamacallit" framework (what's the name of these things anyways?) that I picked up, so I can't really form any comparison to AngularJS or React (other than they seem a bit more daunting to learn and use).

Anyhew, I'm hoping this review will help those who are hesitant to hit that "Buy 🛒" on Adam Wathan's video series!

Which can be found here btw...

Adam Wathan's Vue lessons
https://adamwathan.me/advanced-vue-component-design/

Let's begin!

What I knew before:

  • Setting up Vue project with/without the Vue-cli.
  • Using and configuring Webpack to compile *.vue files.
  • Registering Vue components (template / JSX-like and *.vue based).
  • Using babel-plugin-wildcard to support loading entire directory listings of *.vue files.
  • Using vue-router (for PWA / SPA).
  • Defining Vue directives.
  • Defining new Vue getters / setters to expose certain DOM elements / Vue nodes to all components.
  • Handling data / props / methods / computed / watchers / events.
  • Minor styling knowledge within *.vue files (usually just tossed everything in top-level SASS files).

What I know now:

(After watching the videos, started watching on May 10th 2018)

  • Customize model's prop and event names to be more meaningful, so your custom components work nicely with v-model bindings.
  • Wiring up 3rd party libraries into your custom components and passing arbitrary ... this.options data.
  • Using created lifecycle and this.$once('hook:destroyed', ...) to add/remove document or window event handlers (without polluting the instance state of the component).
  • Using 'immediate: true, handler() {...}` on watchers that SHOULD run the first time a property it initialized.
  • Portal / Portal-targets, solving reused portals with v-if conditionals.
  • Default & Names Slots, and setting their default content.
  • Isolating uses of portals by using "Composition" with generic components (instead of inheritance / mixins).
  • Scoped-Slots (Vue's secret sauce! Useful for lists / v-for loops).
  • Render Functions and their importance in Data Provider Components (makes data injection a helluvalot easier!)
  • Renderless UI Components (it gets more complicated, but very interesting stuff!)
  • Encapsulating action props (input events, props) and exposing them with slot-scope "object-destructuring" to use in custom layouts.
  • Element Queries, basically do more complex layout / data changes that CSS Media Queries can't do.
  • Provide & Inject, a way to share state between parent-child components (ex: Accordeon List & Items).
  • Compound Components, demos a "sortable list" consisting of Render Functions, Provide & Inject, default slots and scoped-slots.
  • (to be continued ...)

Review

So! If you've just sunk your teeth into Vue Development, should you buy & watch these Vue lessons?

Verdict: Yes! ✔️

Here's why. Adam covers and breaks down the complexity of building Vue components in a very easy to understand manner (ok sure, some videos deserves a few replays to really grasp the concepts, but still...)

Not only does he explain How To do this & that for each concepts, he explains why. And his suggestions stem from what the Vue contributors would recommend to do as well. So chances are if you're aiming at sharing your own collection of custom components, these video tutorials would help you meet the requirements / standards of the Vue community.

Also I need to mention...

Instead of personally perusing all the Vue docs yourself - if you're just going to spend your evenings watching Netflix or some TV show 📺, BUUUUUUT know that deep inside, you'd rather gain something out of some videos that covers Web Development 😍 topics you're interested in - you will get that in this excellent lesson package!

Quality

  • Audio 5/5
  • Video 5/5

The audio / voice quality is top-notch (not excessively low, muffled or thinny in any way). I'm usually very sensible / critical when it comes to listening to narrative or tutorial voices. Adam has a nice, clear, friendly and calm tone throughout the screen recordings. He clearly underlines in his tone when he makes comparisons like "Here's an 'ok' example ... but here's an EVEN BETTER WAY!", which I think is great for keeping the material interesting.

Oh, and not one "Eeeeh, ummmm, soooo, aaaaah..." (that I've noticed anyways!) which, from my experience, I know is so damn hard to avoid! Not sure how many takes or edits it may have taken, but regardless - KUDOS to your clean production Adam!

As for the Video Quality, the font-size / color-syntax is perfectly readable, the screen size captures only the necessary bits (no file-menu bars, not even a browser address bar), so you're really just immersed in the code and its resulting output, no time wasted on re-compiling, etc.

Conclusion

If any of the bullet points above (on the "What I know now..." part) sounds like things you're also lacking in your Vue skills department, you should really consider buying these lessons! Don't forget that when buying the "Complete Package", Adam also offers you "Lifetime access to any new material added to the course" - so hopefully the idea there is that when new features gets added to Vue, new recordings will be made and you can keep your Vue knowledge fresh!

Hope this review helps!

Leave comments or even just reactions (:+1:) if this influenced your decision to purchase the lessons!

Peace!

@davestewart
Copy link

davestewart commented May 11, 2018

Nice one Pierre! Think the advanced component and render function stuff will probably be worth it alone

@myself379
Copy link

myself379 commented Aug 8, 2018

Hey, may I know how did you set up the files? I see that index.html doesn't load the Vue scripts, how should I run it?

I tried

npm run build

and it just builds without doing anything else. Could someone shed some light on this for me?

edit: nvm, silly me. I didn't notice there's a README.md, just saw it the soonest I re-open the directory. The directory confuses me and only I realized its using vuejs-templates/webpack

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment