Michael Hoffmann
Home
About
Blog
Vue Tips
Projects
Hire me
Minimal Tip List
2024
(18 posts)
Nuxt Tip: Validate Data in Your Server Routes
(Aug 14, 2024)
Vue Tip: Simple Routing Without Using External Libraries
(Jul 27, 2024)
Vue Tip: Cache Component Instances With the KeepAlive Component
(Jun 19, 2024)
Nuxt Tip: Change Status Code of the Response
(Jun 13, 2024)
Nuxt Tip: Run Code Once During SSR or CSR
(Jun 1, 2024)
Vue Tip: How I Write Class & Style Bindings
(May 30, 2024)
Vue Tip: When You Should Use a Composable
(May 23, 2024)
Vue Tip: Mutate Your State Inside of the Provider Using Provide and Inject
(May 3, 2024)
Vue Tip: Share Styling Using Wrapper Components
(Apr 11, 2024)
Nuxt Tip: Use Environment-Specific Configurations
(Apr 3, 2024)
Vue Tip: Validate Props in Script Setup With TypeScript
(Mar 21, 2024)
Nuxt Tip: How Nuxt Uses Nitro, h3 and ofetch Internally
(Mar 1, 2024)
Vue Tip: Don't Use Reactive Object for Template Refs
(Feb 22, 2024)
Vue Tip: Trigger Transition Programmatically
(Feb 13, 2024)
Vue Tip: Passing Slots to Child Components
(Jan 27, 2024)
Nuxt Tip: Cancel Fetch API Request
(Jan 13, 2024)
Vue Tip: Check if Component Has Event Listener Attached
(Jan 11, 2024)
Vue Tip: Watch Slot Changes
(Jan 5, 2024)
2023
(51 posts)
Nuxt Tip: Handle Client-Side Errors
(Dec 19, 2023)
Vue Tip: Best Way to Force Re-Render Vue Component
(Dec 15, 2023)
Vue Tip: Document Your Component Props Using JSDoc
(Dec 14, 2023)
Vue Tip: Composable to Define Keyboard Shortcuts
(Dec 7, 2023)
Vue Tip: Use a Head Manager
(Dec 2, 2023)
Vue Tip: Automatically Import Components
(Nov 23, 2023)
Pinia Tip: Simple History With Undo and Redo Functionality
(Nov 10, 2023)
Vue Tip: Accessing Template Ref in Child Component
(Oct 27, 2023)
Nuxt Tip: How to Fix "Nuxt Instance Unavailable" Error
(Oct 12, 2023)
Vue Tip: Dynamic Slot Names
(Oct 7, 2023)
Nuxt Tip: Detecting Server vs. Client-Side Code Execution
(Sep 29, 2023)
Vue Tip: Event Handling
(Sep 23, 2023)
Vue Tip: Use Your Composables Synchronously
(Sep 16, 2023)
Nuxt Tip: Custom SPA Loading Template for Your Nuxt Application
(Sep 15, 2023)
Vue Tip: Deep Watch on Arrays
(Sep 11, 2023)
Nuxt Tip: An URL Object Working on Both Server-Side and Client-Side
(Sep 2, 2023)
Vue Tip: Simple State Management With Composition API
(Aug 18, 2023)
Vue Tip: Manually Stop Watcher
(Aug 4, 2023)
Vue Tip: Dynamic Return Values in Composables
(Jul 27, 2023)
Vue Tip: Use VueUse to Unleash the Power of Utility Functions
(Jul 26, 2023)
Vue Tip: Emit Event From Composable
(Jul 22, 2023)
Vue Tip: Split Your SFC into Multiple Files
(Jul 12, 2023)
Nuxt Tip: Differentiate Client and Server Components
(Jul 5, 2023)
Vue Tip: Use Eager Computed Without Lazy Evaluation
(Jun 28, 2023)
Nuxt Tip: Lazy Load Components in Nuxt 3
(Jun 23, 2023)
Vue Tip: Don't Use v-if With v-for
(Jun 16, 2023)
Vue Tip: Detect Mouse Hover
(Jun 7, 2023)
Nuxt Tip: Add Custom iframe Tab to Nuxt DevTools
(Jun 1, 2023)
Vue Tip: Debug Watcher
(May 23, 2023)
Nuxt Tip: Move Homepage to Sub-Folder in Nuxt 3
(May 18, 2023)
Vue Tip: Chaining Event Modifiers
(May 4, 2023)
Vue Tip: Effortless Handle Asynchronous Components With Suspense
(Apr 28, 2023)
Nuxt Tip: Use Nuxt Layers to Share Components, Utils, and Configuration Between Your Apps
(Apr 19, 2023)
Vue Tip: Declare and Mutate v-model Props as Normal Variable Using defineModel
(Apr 9, 2023)
Vue Tip: Optimize Performance Using shallowRef
(Apr 7, 2023)
Nuxt Tip: Render Component Only on Client-Side
(Apr 5, 2023)
Vue Tip: Validate Events and Prop Types
(Mar 28, 2023)
Nuxt Tip: Refresh Data by Watching Sources Using useAsyncData
(Mar 22, 2023)
Vue Tip: When to Use Render Function
(Mar 15, 2023)
Nuxt Tip: Rendering Modes
(Mar 6, 2023)
Vue Tip: Debugging in Templates
(Feb 16, 2023)
Vue Tip: Use Scoped Slots in a Child Component to Provide Data for Parent Component
(Feb 15, 2023)
Nuxt Tip: Use DevTools to Know Your App Better
(Feb 14, 2023)
Vue Tip: Re-Rendering Vue Routes When Path Parameters Change
(Feb 6, 2023)
Vue Tip: Destructure Props in Composition API Without Losing Reactivity
(Jan 26, 2023)
Nuxt Tip: Analyse Production Bundle
(Jan 23, 2023)
Pinia Tip: Use Setup Stores for More Flexibility
(Jan 20, 2023)
Nuxt Tip: Adding a Latest Route
(Jan 11, 2023)
Vue Tip: Typing Component Events
(Jan 9, 2023)
Vue Tip: Dynamically Change Page Title
(Jan 7, 2023)
Vue Tip: Access DOM in Watcher Callback After Vue Updated It
(Jan 2, 2023)
2022
(45 posts)
Vue Tip: Pass Custom Arguments to Event Handler Method
(Dec 26, 2022)
Vue Tip: Avoid Mutating a Prop Directly
(Dec 13, 2022)
Vue Tip: Disable Attribute Inheritance
(Dec 10, 2022)
Vue Tip: Dynamically Add & Remove Route While App Is Running
(Dec 6, 2022)
Vue Tip: Force-Enable Vue Devtools in Production Build
(Nov 29, 2022)
Vue Tip: Use Provide & Inject to Avoid Prop Drilling
(Nov 22, 2022)
Vue Tip: Change the Interpolation Delimiter
(Nov 17, 2022)
Vue Tip: Use Vue Without Build Step
(Nov 8, 2022)
Vue Tip: Defining and Registering Vue Web Components
(Nov 4, 2022)
Vue Tip: Share Composable State Across Components
(Oct 28, 2022)
Vue Tip: Expose Properties in a Script Setup Component
(Oct 8, 2022)
Vue Tip: Expose Slots From a Child Component
(Oct 1, 2022)
Vue Tip: Lifecycle Hooks for Debugging
(Sep 26, 2022)
Vue Tip: Typing Template Refs With TypeScript
(Sep 3, 2022)
Vue Tip: Avoid Side Effects in Computed Properties
(Aug 25, 2022)
Vue Tip: Test Vue Components Using Vue Testing Library
(Aug 19, 2022)
Vue Tip: Creating a Custom Directive
(Aug 13, 2022)
Vue Tip: Avoid Directly DOM Manipulation
(Aug 10, 2022)
Vue Tip: Use Vue App Instance as Global Store
(Jul 25, 2022)
Vue Tip: When to Use v-if
(Jul 20, 2022)
Vue Tip: Avoid Empty Wrapper for Conditions
(Jul 14, 2022)
Vue Tip: Delay Loading Appearance of Spinner
(Jul 12, 2022)
Vue Tip: Check if Slot Is Empty
(Jul 6, 2022)
Vue Tip: Memoize a Sub-Tree of the Template Using v-memo
(Jun 29, 2022)
Vue Tip: watch() vs. watchEffect()
(Jun 22, 2022)
Vue Tip: Use Fallthrough Attributes
(Jun 15, 2022)
Vue Tip: Provide Fallback Content for Slots
(Jun 8, 2022)
Vue Tip: Debug Computed Properties
(Jun 1, 2022)
Vue Tip: Use Lazy v-model to Sync State After Change Events
(May 22, 2022)
Vue Tip: Create Custom v-model Modifier
(May 11, 2022)
Vue Tip: Query Inner Elements in Third-Party Components
(Apr 21, 2022)
Vue Tip: Check Version at Runtime
(Apr 10, 2022)
Vue Tip: Measure Performance
(Apr 4, 2022)
Vue Tip: Animate Child Component Before Route Leave
(Mar 25, 2022)
Vue Tip: Use v-bind to Pass Multiple Props to Components
(Mar 18, 2022)
Vue Tip: Watch Nested Values
(Mar 11, 2022)
Vue Tip: Use Vuex in Vue Router Navigation Guards
(Mar 4, 2022)
Vue Tip: Special CSS Selectors
(Feb 25, 2022)
Vue Tip: Use Optional Chaining in Templates
(Feb 19, 2022)
Vue Tip: Use Two Script Blocks
(Feb 14, 2022)
Vue Tip: Speed Up Initial Load Using Async Components
(Feb 4, 2022)
Vue Tip: Scroll to Top When Navigating to a New Route
(Jan 28, 2022)
Vue Tip: Display Raw HTML
(Jan 24, 2022)
Vue Tip: Automatic Global Registration of Base Components
(Jan 14, 2022)
Vue Tip: Use Teleport to Render a Component in a Different Place
(Jan 9, 2022)
2021
(11 posts)
Vue Tip: Assign Handler for Uncaught Errors
(Dec 15, 2021)
Vue Tip: Simple Expressions in Templates
(Dec 10, 2021)
Vue Tip: Trigger Watcher Immediately
(Dec 2, 2021)
Vue Tip: Use Multiple v-model Bindings
(Nov 25, 2021)
Vue Tip: Avoid Unwanted Re-Renders of an Element Using v-once
(Nov 21, 2021)
Vue Tip: Destructure in v-for
(Nov 16, 2021)
Vue Tip: Avoid Empty Class Attributes
(Nov 14, 2021)
Vue Tip: Props and Context in Setup Method
(Nov 13, 2021)
Vue Tip: Detailed Prop Definitions
(Nov 12, 2021)
Vue Tip: Reactive Values in CSS
(Nov 11, 2021)
Vue Tip: Prefer Slots Over Props
(Nov 10, 2021)