vue-asyncx 1.11.0-beta.0 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/vue-asyncx.compat.d.ts +6 -11
- package/dist/vue-asyncx.d.ts +6 -11
- package/dist/vue-asyncx.js +244 -905
- package/dist/vue-asyncx.umd.cjs +1 -1
- package/package.json +28 -16
package/README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
让异步像写诗的 Vue 3 /
|
|
1
|
+
让异步像写诗的 Vue 3 / 2.7 组合式工具库 [](https://github.com/xuyimingwork/vue-asyncx/actions/workflows/test.yml) [](https://codecov.io/gh/xuyimingwork/vue-asyncx)
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
**不重复、有语义,天然防竞态、自由可扩展**
|
|
5
5
|
|
|
6
6
|

|
|
7
7
|
|
|
8
|
-
-
|
|
9
|
-
-
|
|
8
|
+
- 📚 **文档**:[官网](https://vue-asyncx.js.org/) [](https://deepwiki.com/xuyimingwork/vue-asyncx) [](https://zread.ai/xuyimingwork/vue-asyncx)
|
|
9
|
+
- 🎮 **演示**:[Playground](https://www.typescriptlang.org/play/?ts=5.9.3#code/PQKhCgAIUg3BXApgWgIYGcCeA7AxgD0kH95QCldAuT0Gj5QCH-A5uUADvQVWVAGJUFhNQIXNBIf6hgBVMAHRAGVcAJwCW-AC6QACgBtUmAOaiA9vGwATQFj-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)
|
|
10
10
|
|
|
11
11
|
## 特性
|
|
12
12
|
|
|
@@ -113,4 +113,4 @@ const {
|
|
|
113
113
|
## 兼容性
|
|
114
114
|
|
|
115
115
|
- TS >= 5.4;可放宽至 TS >= 4.1
|
|
116
|
-
- 支持 Vue 3.x /
|
|
116
|
+
- 支持 Vue 3.x / 2.7
|
|
@@ -220,7 +220,7 @@ declare type GetAddonBasicResults<T extends readonly any[]> = T extends readonly
|
|
|
220
220
|
* 该函数返回当前执行上下文中的异步数据上下文。只有在 `useAsyncData` 函数执行期间(同步部分)才会返回有效的上下文对象,
|
|
221
221
|
* 在其他情况下(如外部调用、异步回调中)会返回 `null`。
|
|
222
222
|
*
|
|
223
|
-
* 上下文对象包含 `getData` 和 `updateData`
|
|
223
|
+
* 上下文对象包含 `getData` 和 `updateData` 方法,用于在异步函数执行中访问和更新数据(竞态安全)。
|
|
224
224
|
*
|
|
225
225
|
* @returns 包含 `getData` 和 `updateData` 方法的上下文对象,如果当前不在 `useAsyncData` 执行上下文中则返回 `null`
|
|
226
226
|
*
|
|
@@ -309,7 +309,7 @@ declare interface InternalFunctionMonitor {
|
|
|
309
309
|
* 调用追踪对象
|
|
310
310
|
*
|
|
311
311
|
* @description 表示单次函数调用的追踪信息,包含调用序号、状态和关联数据。
|
|
312
|
-
*
|
|
312
|
+
* 用于处理竞态条件,确保只有最新调用的状态才会更新到最终结果。
|
|
313
313
|
*/
|
|
314
314
|
declare type InternalTrack = {
|
|
315
315
|
/** 调用序号,唯一标识每次调用 */
|
|
@@ -411,9 +411,9 @@ declare type Simplify<T> = {
|
|
|
411
411
|
*/
|
|
412
412
|
declare type ToCamel<S extends string, IsFirst extends boolean> = IsFirst extends true ? Uncapitalize<S> : Capitalize<S>;
|
|
413
413
|
|
|
414
|
-
declare type Track = Pick<InternalTrack, 'sn' | 'is' | 'getData' | 'setData'> & {
|
|
414
|
+
declare type Track = Simplify<Pick<InternalTrack, 'sn' | 'is' | 'getData' | 'setData'> & {
|
|
415
415
|
takeData: <V = any>(key: symbol) => V | undefined;
|
|
416
|
-
}
|
|
416
|
+
}>;
|
|
417
417
|
|
|
418
418
|
/**
|
|
419
419
|
* Track 查询状态类型
|
|
@@ -422,11 +422,6 @@ declare type Track = Pick<InternalTrack, 'sn' | 'is' | 'getData' | 'setData'> &
|
|
|
422
422
|
*/
|
|
423
423
|
declare type TrackQueryState = TrackState | 'finished';
|
|
424
424
|
|
|
425
|
-
/**
|
|
426
|
-
* @fileoverview Monitor 类型定义
|
|
427
|
-
*
|
|
428
|
-
* @module core/monitor/types
|
|
429
|
-
*/
|
|
430
425
|
/**
|
|
431
426
|
* Track 状态类型
|
|
432
427
|
*
|
|
@@ -717,10 +712,10 @@ declare interface UseAsyncWatchOptions<Fn extends BaseFunction> extends WatchOpt
|
|
|
717
712
|
*
|
|
718
713
|
* 核心特性:
|
|
719
714
|
* - 固定属性:`group[key]` 在被创建后始终包含 `loading`、`error`、`arguments`、`data`
|
|
720
|
-
* - 直接值:`group[key]?.loading` 是 `boolean`,不是 `Ref<boolean
|
|
715
|
+
* - 直接值:`group[key]?.loading` 是 `boolean`,不是 `Ref<boolean>`。注:group 本身是 ref,其属性在访问时会自动解包为直接值
|
|
721
716
|
* - 需要使用可选链:`group[key]` 可能为 `undefined`(当该 key 还没有被调用过时)
|
|
722
717
|
* - 自动同步:所有 addon 的 setData 操作自动同步到 group
|
|
723
|
-
* -
|
|
718
|
+
* - 竞态处理:只有最新调用的状态才会更新到 group
|
|
724
719
|
*
|
|
725
720
|
* @param config - 配置对象
|
|
726
721
|
* @param config.key - 根据函数参数生成 group key 的函数
|
package/dist/vue-asyncx.d.ts
CHANGED
|
@@ -220,7 +220,7 @@ declare type GetAddonBasicResults<T extends readonly any[]> = T extends readonly
|
|
|
220
220
|
* 该函数返回当前执行上下文中的异步数据上下文。只有在 `useAsyncData` 函数执行期间(同步部分)才会返回有效的上下文对象,
|
|
221
221
|
* 在其他情况下(如外部调用、异步回调中)会返回 `null`。
|
|
222
222
|
*
|
|
223
|
-
* 上下文对象包含 `getData` 和 `updateData`
|
|
223
|
+
* 上下文对象包含 `getData` 和 `updateData` 方法,用于在异步函数执行中访问和更新数据(竞态安全)。
|
|
224
224
|
*
|
|
225
225
|
* @returns 包含 `getData` 和 `updateData` 方法的上下文对象,如果当前不在 `useAsyncData` 执行上下文中则返回 `null`
|
|
226
226
|
*
|
|
@@ -309,7 +309,7 @@ declare interface InternalFunctionMonitor {
|
|
|
309
309
|
* 调用追踪对象
|
|
310
310
|
*
|
|
311
311
|
* @description 表示单次函数调用的追踪信息,包含调用序号、状态和关联数据。
|
|
312
|
-
*
|
|
312
|
+
* 用于处理竞态条件,确保只有最新调用的状态才会更新到最终结果。
|
|
313
313
|
*/
|
|
314
314
|
declare type InternalTrack = {
|
|
315
315
|
/** 调用序号,唯一标识每次调用 */
|
|
@@ -411,9 +411,9 @@ declare type Simplify<T> = {
|
|
|
411
411
|
*/
|
|
412
412
|
declare type ToCamel<S extends string, IsFirst extends boolean> = IsFirst extends true ? Uncapitalize<S> : Capitalize<S>;
|
|
413
413
|
|
|
414
|
-
declare type Track = Pick<InternalTrack, 'sn' | 'is' | 'getData' | 'setData'> & {
|
|
414
|
+
declare type Track = Simplify<Pick<InternalTrack, 'sn' | 'is' | 'getData' | 'setData'> & {
|
|
415
415
|
takeData: <V = any>(key: symbol) => V | undefined;
|
|
416
|
-
}
|
|
416
|
+
}>;
|
|
417
417
|
|
|
418
418
|
/**
|
|
419
419
|
* Track 查询状态类型
|
|
@@ -422,11 +422,6 @@ declare type Track = Pick<InternalTrack, 'sn' | 'is' | 'getData' | 'setData'> &
|
|
|
422
422
|
*/
|
|
423
423
|
declare type TrackQueryState = TrackState | 'finished';
|
|
424
424
|
|
|
425
|
-
/**
|
|
426
|
-
* @fileoverview Monitor 类型定义
|
|
427
|
-
*
|
|
428
|
-
* @module core/monitor/types
|
|
429
|
-
*/
|
|
430
425
|
/**
|
|
431
426
|
* Track 状态类型
|
|
432
427
|
*
|
|
@@ -717,10 +712,10 @@ declare interface UseAsyncWatchOptions<Fn extends BaseFunction> extends WatchOpt
|
|
|
717
712
|
*
|
|
718
713
|
* 核心特性:
|
|
719
714
|
* - 固定属性:`group[key]` 在被创建后始终包含 `loading`、`error`、`arguments`、`data`
|
|
720
|
-
* - 直接值:`group[key]?.loading` 是 `boolean`,不是 `Ref<boolean
|
|
715
|
+
* - 直接值:`group[key]?.loading` 是 `boolean`,不是 `Ref<boolean>`。注:group 本身是 ref,其属性在访问时会自动解包为直接值
|
|
721
716
|
* - 需要使用可选链:`group[key]` 可能为 `undefined`(当该 key 还没有被调用过时)
|
|
722
717
|
* - 自动同步:所有 addon 的 setData 操作自动同步到 group
|
|
723
|
-
* -
|
|
718
|
+
* - 竞态处理:只有最新调用的状态才会更新到 group
|
|
724
719
|
*
|
|
725
720
|
* @param config - 配置对象
|
|
726
721
|
* @param config.key - 根据函数参数生成 group key 的函数
|