npm.io
1.2.7 • Published 5d ago

@hzab/list-render-mobile

Licence
ISC
Version
1.2.7
Deps
0
Vulns
0
Weekly
0

@hzab/list-render-mobile

组件模板

  • Node.js ≥ 24

安装

pnpm add @hzab/list-render-mobile

本包同时发布到公共 npmregistry.npmjs.org,public access)与企业私有源(ld / old)。 默认源可直接安装,无需额外配置;若团队要求走内网源,见消费方接入指南

消费方需自备 peerDependencies:@hzab/data-modelantd-mobileantd-mobile-iconsreactreact-domreact-virtualized(本包不会随包安装)。

引入方式见下方「组件」章节。

发布形态:本包在本仓以源码直出方式发布——main 指向 src,由消费方打包器编译 TypeScript 与 .less 样式;@hzab/list-render-mobile/src/* 深路径同样可直接引用。随包发布的 dist/ 仅用于 类型解析(typesdist/index.d.ts),不是运行时入口。

组件

注意事项

  • new DataModel() hooks 写法时,注意避免 hooks 重复创建实例,导致 query 丢失
    • 非动态 query 参数使用 modelParams 参数直接自动生成 model。query 中的值必须是实例化的时候就存在(不支持动态 query 参数)。
    • 动态 query 参数使用 useDataModel(); 生成 model。query 允许自行配置监听的动态参数

示例

import { useDataModel } from "@hzab/data-model";
import Demo from "@hzab/list-render-mobile";

// 使用 modelParams 参数实例化 DataModel,不支持动态参数
function Test() {
  const modelParams = {
    getListApi: "/getList",
    query: { orgId: getUrlParam("orgId") },
  };

  return <Demo modelParams={modelParams} />;
}

// 使用 useDataModel 实例化 DataModel,支持动态参数
function Test2({ orgId }) {
  const model = useDataModel(
    {
      getListApi: "/getList",
      query: { orgId },
    },
    [orgId],
  );

  return <Demo model={model} />;
}

API

InfoPanel Attributes
参数 类型 必填 默认值 说明
model Object - 数据模型,包含 CURD 接口信息,传入 DataModel 的实例
modelParams Object - 不支持动态参数。传入 DataModel 的的参数,内部自动创建 Model 实例。
schema Object - 数据信息的 schema
list Array - 本地列表数据
closeAutoRequest Boolean false 是否关闭加载完毕后自动发起请求。true 时组件 didMount 不自动发起请求
idKey string id 唯一值字段的 key
ItemRender Function - 子项渲染组件
virtualized Boolean false 是否启用虚拟滚动
listHeight number - 列表高度,优先级大于 isAutoHeight 计算的高度
isAutoHeight Boolean false 是否自动计算高度(视窗到列表顶部的距离,clientHeight - boxRec.top)
rowHeight number 10 启用虚拟滚动时,每行的高度(单位:像素,优先级高于 pageRow)
pageRow number 10 启用虚拟滚动时,每页显示的行数
dataType string - 传入 localData 支持控制滚动加载数据