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 会缓存结果,只有依赖变化时才重新计算。