pinia中onAction

onAction

onAction可以监听对store中值的修改,但是经过测试发现
如果执行someStore.$reset

const resetUserStore = () => {
  userStore.$reset();
};

或者 $patch

const dispatchUserStore = () => {
  userStore.$patch((state) => {
    state.name = "patch修改";
  });
};

是都无法导致$onAntion监听得到的

userStore.$onAction(
  ({
    name, // action 名称
    store, // store 实例,类似 `someStore`
    args, // 传递给 action 的参数数组
    after, // 在 action 返回或解决后的钩子
    onError, // action 抛出或拒绝的钩子
  }) => {
    // 为这个特定的 action 调用提供一个共享变量
    const startTime = Date.now();
    // 这将在执行 "store "的 action 之前触发。
    console.log(`Start "${name}" with params [${args.join(", ")}].`);

    // 这将在 action 成功并完全运行后触发。
    // 它等待着任何返回的 promise
    after((result) => {
      console.log(
        `Finished "${name}" after ${
          Date.now() - startTime
        }ms.\nResult: ${result}.`
      );
    });

    // 如果 action 抛出或返回一个拒绝的 promise,这将触发
    onError((error) => {
      console.warn(
        `Failed "${name}" after ${Date.now() - startTime}ms.\nError: ${error}.`
      );
    });
  }
);

pinia中onAction_第1张图片

你可能感兴趣的:(Vue,前端,javascript,开发语言)