@xmem/hooks

0.1.3 • Public • Published

useTableList 的使用

useTableList是一个基于 Vue 3 的钩子函数,旨在简化数据表格列表的管理和展示。其设计思想包括:

  • 加载数据:能够从后端或其他数据源异步加载数据,并在加载完成后自动更新表格。
  • 分页:支持对数据进行分页展示,用户可以通过分页器切换不同的页面。
  • 排序:允许用户根据列头点击对表格数据进行排序,包括升序和降序。
  • 搜索:提供搜索功能,可以根据用户输入的关键词过滤表格数据。
  • 刷新:允许用户手动刷新表格数据,以便及时获取最新数据。
  • 自定义参数:支持传入自定义参数,以便根据不同需求定制数据请求的逻辑。

如何安装

pnpm add @xmem/hooks

如何使用

使用 useTableList 钩子函数来管理数据表格列表。以下是一个简单的示例:

import { useTableList } from '@xmem/hooks'

const params = ref({}) // 可选的参数
const { loading, tableList, getList, pageInfo, pagination } = useTableList(fetchTableData, params)

参数说明

输入参数

  • api:必填,分页列表的api地址
  • params:非必填,列表的查询参数 默认{page:0,size:10}
  • automatic:非必填,是否自动请求数据 默认true

钩子函数返回值

  • loading: 用于表示数据加载状态的布尔值。
  • tableList: 表示数据表格的列表数据。
  • getList: 用于手动触发数据请求的函数。
  • pageInfo: 表示分页信息的对象,包括每页条目数和当前页码。
  • pagination: 表示分页器的配置信息,包括每页条目数、当前页码、总条目数和总页数。

useEntityHandler 的使用

@xmem/hooks 提供了一个名为 useEntityHandler 的自定义 Vue 3 hook,用于处理实体的相关操作,例如获取实体详情、更新实体、保存新实体和删除实体。本文档将介绍该 hook 的设计思想、用法以及相关注意事项。

设计思想

实体的操作无非就是增删改查,在不同的项目里面正常就是增删改查的API不一样。 所以我们尽可能地封装实体操作的复杂性,并提供简洁的接口供开发者使用。其主要设计思想包括:

  • 封装异步操作: useEntityHandler 封装了异步操作,使得开发者可以轻松地进行实体的 CRUD 操作,而无需关心异步操作的具体细节。
  • 提供状态和消息: hook 提供了实体操作的状态以及相关的提示消息,开发者可以根据这些信息进行 UI 界面的渲染和交互。
  • 灵活性和可定制性: hook 提供了灵活的配置选项,使得开发者可以根据具体需求进行定制和扩展。

如何安装

你可以通过 npm 来安装 @xmem/hooks 包:

npm install @xmem/hooks

如何使用

在 Vue 组件中使用 useEntityHandler hook:

import { useEntityHandler } from '@xmem/hooks';

const api = {
  // 定义你的 API 函数,注意类型和结构
  getEntityDetail: (id: string);  
  updateEntityDetail: (id: string, newData: any);
  saveNewEntity: (newData: any);
  deleteEntity: (id: string);
};
const { entityDetail, loading, status, message, getEntityDetail, updateEntityDetail, saveNewEntity, deleteEntity } = useEntityHandler(api);

const saveNew = async () => {
  await saveNewEntity(/* 新实体的数据 */);
};

const updateDetail = async () => {
  await updateEntityDetail(/* 实体ID */, /* 更新的数据 */);
};

const deleteDetail = async () => {
  await deleteEntity(/* 实体ID */);
};

// 在组件初始化时加载实体详情
getEntityDetail(/* 实体ID */);

属性和方法

  • entityDetail: 当前实体详情的引用。
  • loading: 表示请求是否正在进行中的布尔值。
  • status: 表示当前操作的状态,可能的值为 'success' 或 'error'。
  • message: 当前操作的提示消息。
  • getEntityDetail(id: string): 获取指定 ID 的实体详情。
  • updateEntityDetail(id: string, newData: any): 更新指定 ID 的实体详情。
  • saveNewEntity(newData: any): 保存新的实体。
  • deleteEntity(id: string): 删除指定 ID 的实体。

注意事项

请确保传入的 API 对象中包含了对应的 API 函数,并且这些函数的功能与预期一致。

在使用时,请注意处理异步操作的返回结果,包括状态和提示消息。

根据具体需求进行界面的渲染和交互,可以根据状态和消息来定制不同的 UI 效果。

若有需要,可以根据业务需求进行进一步定制和扩展,以满足特定的功能要求。

Readme

Keywords

none

Package Sidebar

Install

npm i @xmem/hooks

Weekly Downloads

0

Version

0.1.3

License

ISC

Unpacked Size

8.25 kB

Total Files

4

Last publish

Collaborators

  • xmem