在前端开发中,我们经常会使用到大量的数据。为了对这些数据进行处理,我们需要使用 schema 去定义数据对象的结构,这样可以帮助我们验证数据的合法性并且提高开发效率。erschema-action-handlers 是一个非常实用的 npm 包,可以帮助我们简化 schema 相关的处理流程,本篇文章将详细介绍该包的使用方法。
1. 安装
使用 npm 进行安装:
npm i erschema-action-handlers
2. 引入
const { createActionHandlers } = require('erschema-action-handlers');
3. 使用
3.1 createActionHandlers
-- -------------------- ---- ------- ----- ------ - - ----- --------- --------- ------- ----------- - --- - ----- -------- -- ----- - ----- --------- ---------- -- -- ------ - ----- --------- ------- ------- -- -- -- ----- -------------- - -----------------------------
createActionHandlers 函数会根据 schema 中的定义自动生成对应的 action handlers(对 action 进行处理的函数),这些 action handlers 能够验证 action 对象是否符合 schema 规定的数据结构,符合就可以顺利执行,否则会抛出异常。
3.2 actionHandlers.add
const payload = { id: 1, name: 'Test', email: 'test@example.com', }; const add = actionHandlers.add(payload);
add 函数会根据 schema 定义对传入的 payload
进行验证,确保其符合数据结构规范,然后会返回一个对象 action
,它是一个符合 redux 规范的 action,包含 type
与 payload
两个字段:
{ type: 'ADD', payload: { id: 1, name: 'Test', email: 'test@example.com', }, }
3.3 actionHandlers.update
const payload = { id: 1, name: 'Test', email: 'test@example.com', }; const update = actionHandlers.update(1, payload);
update 函数会根据传入的 id
与 payload
去生成相应的 action,如果 id
匹配成功,而且 payload
符合 schema 规定的结构,那么就可以生成一个符合 redux 规范的 action:
{ type: 'UPDATE', payload: { id: 1, name: 'Test', email: 'test@example.com', }, }
3.4 actionHandlers.remove
const remove = actionHandlers.remove(1);
remove 函数会根据传入的 id
去生成相应的 action:
{ type: 'REMOVE', payload: { id: 1, }, }
4. 示例代码
-- -------------------- ---- ------- ----- - -------------------- - - ------------------------------------ ----- ------ - - ----- --------- --------- ------- ----------- - --- - ----- -------- -- ----- - ----- --------- ---------- -- -- ------ - ----- --------- ------- ------- -- -- -- ----- -------------- - ----------------------------- ----- ------- - - --- -- ----- ------- ------ ------------------- -- ----- --- - ---------------------------- ----------------- ----- ------ - ------------------------ --------- -------------------- ----- ------ - ------------------------- --------------------
通过运行上面的示例代码,可以看到输出内容中包含生成的不同类型的 action:
-- -------------------- ---- ------- - ----- ------ -------- - --- -- ----- ------- ------ ------------------ - - - ----- --------- -------- - --- -- ----- ------- ------ ------------------ - - - ----- --------- -------- - --- - - -
5. 总结
通过学习本文,相信读者已经了解了 npm 包 erschema-action-handlers 的使用方法。它的主要作用就是为我们提供了自动化的 schema 处理能力,大大提高了开发效率,同时也可以更好的保证数据的正确性。在日常开发中,我们可以结合 redux 模式使用 erschema-action-handlers 去快速地生成符合要求的 action,让我们的前端开发更加高效、简洁、规范。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600555b781e8991b448d2cfa