"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.useForceUpdate = useForceUpdate;
var _vue = require("vue");
/**
 * @description Vue 3 中用于强制组件重新渲染的组合式函数。
 * 类似于 React 的 useForceUpdate 或 this.$forceUpdate()。
 * @returns {Function} forceUpdate - 调用此函数将强制使用它的组件重新渲染。
 */
function useForceUpdate() {
  // 1. 定义一个 ref 计数器，作为触发更新的依赖项
  const updateCount = (0, _vue.ref)(0);
  // 2. 返回一个函数，该函数会递增计数器，从而触发组件更新
  const forceUpdate = () => {
    // 递增 ref 的值，Vue 的响应式系统会自动检测到变化并触发组件重新渲染
    updateCount.value++;
    // 你也可以使用 Math.random() 来保证每次的值都不同：
    // updateCount.value = Math.random();
  };
  // 3. 返回触发更新的函数
  return [updateCount, forceUpdate];
}