useDefaultSetProp.ts 358 B

1234567891011121314151617
  1. import { ref } from 'vue'
  2. import type { Ref } from 'vue'
  3. const useDefaultSetProp = <P extends unknown>(p: P, afterSet?: (p: P) => void) => {
  4. const model = ref<P>(p) as Ref<P>
  5. function setModel(newModel: P) {
  6. model.value = newModel
  7. if (afterSet) {
  8. afterSet(newModel)
  9. }
  10. }
  11. return { model, setModel }
  12. }
  13. export { useDefaultSetProp }