Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IT Bootcamp 2025 - Wahyu

IT Bootcamp 2025 - Wahyu

Sharing about how to get started with Vue.js and bring your frontend to life using Motion Vue for smooth, modern animations.

Avatar for Wahyu Ivan

Wahyu Ivan

October 18, 2025
Tweet

More Decks by Wahyu Ivan

Other Decks in Programming

Transcript

  1. Level Up Your Frontend: Getting Started with Vue.js & Motion

    Vue Wahyu Ivan FE Developer, Incentro APAC
  2. </ Introduction Hi, I’m Wahyu. 3 years exp of working,

    1 year as QA, 2 year as dev, polygloting on every tech. And I am currently continuing my studies in the Master of Computer Science program at Undiksha.
  3. 1. Simple and intuitive API 2. Declarative animations with React,

    Vue, and more 3. High performance with optimized rendering </ Why Motion?
  4. 1. Gentle learning curve 2. Lightweight and fast performance 3.

    Clean and flexible component structure 4. Powerful reactivity system 5. Strong official ecosystem (Vue Router, Pinia, Vite) 6. Easy integration 7. Balanced between structure and flexibility 8. Great documentation and community support 9. Built-in TypeScript support in Vue 3 10. Excellent developer experience (DX) </ Why Vue?
  5. </ Lets take our first step • Open the generated

    URL in browser → you now have a Vue project!
  6. </ Important building blocks - Vue templates are enhanced HTML

    with data binding. - Use double curly braces {{ }} to show reactive data. Example: * The template remains valid HTML, making it approachable.
  7. v-if — conditionally render v-show — hide/show (via CSS) v-for

    — loop over arrays/objects (use :key) v-model — two-way binding (forms etc.) These directives replace many manual DOM logic lines. </ No DOM Needed
  8. Instead of addEventListener, use @event syntax. Example: </ Event handling

    made easy * Very straightforward and ties directly to reactive logic.
  9. For derived values from reactive state. Example: </ Derived values

    never been this simple If firstName or lastName change, fullName updates automatically. Use computed instead of writing heavy logic directly in template.
  10. Hooks let you run code at specific component moments: mount,

    update, unmount. Common ones: - onMounted - onUpdated - onUnmounted Use cases: fetch API on mount, set up subscriptions, cleanup to avoid memory leaks. </ Can’t get away from hooks
  11. Sometimes need direct DOM access. Use ref in template +

    ref() in script: </ Well, sometimes we need DOM
  12. - Don’t mutate props directly — use emit or local

    copy - Use computed for derived state, avoid heavy logic inside template - Be careful with expensive watchers — consider debounce/throttle - Clean up subscriptions in onUnmounted - Avoid very large reactive objects that frequently change — break state into smaller parts </ Do and Don’t
  13. Motion for Vue is an animation library optimized for performance.

    It provides <motion> components that behave like DOM elements but with animation props. Features: property-based animations, gestures, scroll-driven, layout transitions, exit animations. Install: </ Getting started using Motion
  14. Todo App • Input with v-model • List rendering with

    v-for + :key • Add / remove items (emit pattern) • computed to count completed • watch to auto-persist to localStorage • Animations on item enter/exit with Motion Registration Form • Binding & validation • Use computed to enable/disable submit • Use onMounted to auto-focus input Image Gallery with Modal • Bind src dynamically • Modal as child component (props + emit) • Animate modal in/out with Motion transitions </ Practice time!
  15. That’s it, Thank You! Medium Article for today’s topic. Need

    a Free Private Mentoring? why.u9 @ivanwahyu195 wahyuivan