返回 Skill 列表
extension
分类: 开发与工程无需 API Key

Debug Vue Reactivity

当Vue组件不更新、计算属性过时或观察者未触发时进行调试。使用ref()、reactive()、Pinia存储和组件状态来修复响应性问题。在状态发生变化但UI未更新时使用。

person作者: jakexiaohubgithub

🔧 SKILL ACTIVATED: Debug Vue Reactivity

This skill was activated because you mentioned reactivity issues, components not updating, or Vue state problems.

Instructions

Reactivity Debugging Protocol

When Vue components don't update or state seems broken, follow this systematic approach:

1. Check Reactive References

  • Always use .value for ref() in setup()
  • Never destructure reactive objects (breaks reactivity)
  • Use storeToRefs() for Pinia store destructuring
  • Use reactive() for objects, not ref()

2. Computed Properties

  • Check dependencies - computed should only track what it uses
  • Debug stale computed - add console.log to see when it recalculates
  • Use watchEffect() for automatic dependency tracking

3. Watcher Configuration

  • Use { deep: true } for nested object changes
  • Use { immediate: true } to run watcher immediately
  • Check flush: 'post' for timing issues

Quick Debug Patterns

Reactivity Checker

const debugReactivity = (ref, name) => {
  console.log(`${name} initial:`, ref.value)

  const stopWatcher = watch(ref, (newVal, oldVal) => {
    console.log(`${name} changed:`, oldVal, '→', newVal)
  }, { immediate: true })

  return stopWatcher
}

Component Update Tracker

export default {
  setup() {
    onRenderTracked((e) => {
      console.log('Render tracked:', e.key, e.type)
    })

    onRenderTriggered((e) => {
      console.log('Render triggered:', e.key, e.type)
    })
  }
}

🎯 Activation Triggers

This skill activates when you mention:

  • "components won't update"
  • "reactivity issues"
  • "computed not working"
  • "watcher not firing"
  • "UI not updating"
  • "state seems broken"
  • "Vue reactivity problems"

🔗 Related Skills

  • Fix Pinia State: If this is a store synchronization issue
  • Optimize Performance: If this is a performance-related reactivity problem

📊 Usage Context

<!-- SKILL: dev-debug-reactivity -->

Skill usage will be tracked for analytics and improvement purposes

This skill provides systematic debugging approaches for Vue.js reactivity issues in the PomoFlow application.