Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@hzab/data-model

Package Overview
Dependencies
Maintainers
2
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hzab/data-model - npm Package Compare versions

Comparing version 0.2.1 to 0.2.2

2

package.json
{
"name": "@hzab/data-model",
"version": "0.2.1",
"version": "0.2.2",
"description": "data model",

@@ -5,0 +5,0 @@ "main": "src",

@@ -77,12 +77,64 @@ # @hzab/data-model

});
// useDataModel,解决 hooks 写法 model 重复实例化导致 query 丢失的问题
function Demo({ orgId }) {
// 第一个入参同 new DataModel,第二个参数为需要监听的动态参数数组
const model = useDataModel(
// 初始值
{
getListApi: "/getList",
query: { orgId },
},
{
// 动态 query 数据
effectQuery: { orgId },
// 动态数据监听的值
effectTargets: [orgId],
},
);
return <ListRender model={model} />;
}
```
## API
## DataModel
### InfoPanel Attributes
| 参数 | 类型 | 必填 | 默认值 | 说明 |
| -------------------- | -------- | ---- | ------ | ------------------------------------------- |
| query | Object | 否 | - | query 参数对象 |
| createApi | string | 否 | - | post 接口地址 |
| getApi | string | 否 | - | 详情 get 接口地址 |
| getListApi | string | 否 | - | 列表 get 接口地址 |
| updateApi | string | 否 | - | put 接口地址 |
| deleteApi | string | 否 | - | delete 接口地址 |
| multipleDeleteApi | string | 否 | - | 批量删除 delete 接口地址 |
| createMap | Function | 否 | - | createApi 接口提交前的处理函数 |
| getMap | Function | 否 | - | getApi 接口返回结果的处理函数 |
| getListMap | Function | 否 | - | getListApi 接口返回结果的处理函数 |
| getListFunc | Function | 否 | - | 自定义的列表请求函数,优先级高于 getListApi |
| updateMap | Function | 否 | - | updateApi 接口提交前的处理函数 |
| axios | Object | 否 | - | axios 实例对象 |
| axiosConf | Object | 否 | - | axios 相关配置 |
| getListReqMap | Function | 否 | - | 列表接口 get 入参枚举函数 |
| getListResMap | Function | 否 | - | 列表接口 get 出参枚举函数 |
| getReqMap | Function | 否 | - | 详情接口 get 入参枚举函数 |
| getResMap | Function | 否 | - | 详情接口 get 出参枚举函数 |
| createReqMap | Function | 否 | - | 新增接口 get 入参枚举函数 |
| createResMap | Function | 否 | - | 新增接口 get 出参枚举函数 |
| updateReqMap | Function | 否 | - | 编辑接口 get 入参枚举函数 |
| updateResMap | Function | 否 | - | 编辑接口 get 出参枚举函数 |
| deleteReqMap | Function | 否 | - | 删除接口 get 入参枚举函数 |
| deleteResMap | Function | 否 | - | 删除接口 get 出参枚举函数 |
| multipleDeleteReqMap | Function | 否 | - | 批量删除接口 get 入参枚举函数 |
| multipleDeleteResMap | Function | 否 | - | 批量删除接口 get 出参枚举函数 |
| 参数 | 类型 | 必填 | 默认值 | 说明 |
| ---- | ------ | ---- | ------ | ---- |
| | string | 否 | - | |
## useDataModel
| 参数 | 类型 | 必填 | 默认值 | 说明 |
| ----------------- | ------ | ---- | ------ | -------------------------------- |
| initParams | Object | 是 | - | 初始参数,通同 DataModel |
| opt | Object | 否 | - | 配置参数 |
| opt.effectTargets | Object | 否 | - | 动态数据监听的目标 |
| opt.effectParams | Object | 否 | - | 动态的 params 数据,包含了 query |
| opt.effectQuery | Object | 否 | - | 动态的 query 数据 |
# 组件开发流程

@@ -89,0 +141,0 @@

@@ -8,12 +8,21 @@ import { useMemo, useRef } from "react";

* 解决 hooks 重复实例化导致 query 丢失的问题
* @param {*} params
* @param {*} effects
* @param {Object} initParams 初始参数
* @param {Object} opt
* @param {Object} opt.effectTargets 动态数据监听的目标
* @param {Object} opt.effectParams 动态的 params 数据,包含了 query
* @param {Object} opt.effectQuery 动态的 query 数据
* @returns
*/
export const useDataModel = function (params = {}, effects = []) {
const model = useRef(new DataModel(params));
export const useDataModel = function (initParams = {}, opt = {}) {
const model = useRef(new DataModel(initParams));
return useMemo(() => {
merge(model.current, params);
const { effectParams, effectQuery } = opt || {};
if (effectParams) {
merge(model.current, effectParams);
}
if (effectQuery) {
merge(model.current.query, effectQuery);
}
return model.current;
}, effects);
}, opt.effectTargets || []);
};
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc