use-sync-prop-ref.mjs 366 B

123456789101112131415161718
  1. import { ref, watch } from "vue";
  2. const useSyncPropRef = (getProp, setProp) => {
  3. const propRef = ref(getProp());
  4. watch(getProp, (value) => {
  5. if (value !== propRef.value) {
  6. propRef.value = value;
  7. }
  8. });
  9. watch(propRef, (value) => {
  10. if (value !== getProp()) {
  11. setProp(value);
  12. }
  13. });
  14. return propRef;
  15. };
  16. export {
  17. useSyncPropRef
  18. };