Vue 组合式 API 的状态定义

用 ref 与 computed 组织组件状态,保持逻辑与视图分离。

Vuejavascript
javascript
1import { ref, computed } from "vue";23export function useCart() {4  const items = ref([]);5  const total = computed(() =>6    items.value.reduce((sum, item) => sum + item.price * item.qty, 0)7  );89  function add(item) {10    items.value.push(item);11  }1213  return { items, total, add };14}

关键点说明

  • 把状态与操作封装成函数,可以在多个组件之间复用。
  • computed 会缓存结果,只有依赖变化时才重新计算。

使用建议

复制之后先在本地的示例工程里跑一遍,确认运行结果符合预期,再根据自己的业务调整命名与结构。直接粘贴到大项目里容易忽略上下文差异。