UNPKG

tuns-mobile-components

Version:

Tuns Design UI

99 lines (67 loc) 1.78 kB
--- category: 常用库 type: General title: Utils cols: 1 subtitle: 工具库 order: 3 --- 工具库,封装了一些常用的功能 > react-native 下请使用`solomon-utils-rn` ### equals 对比两个对象是否一样,通常用于组件优化 ```js import { equals } from "solomon-utils"; equals({ a: "b" }, { a: "c" }); // false ``` ### merge 合并两个对象 ```js import { merge } from "solomon-utils"; merge({ a: "b" }, { c: "d" }); // { a: 'b', c: 'd' } ``` > `mergeAll, mergeDeepLeft, mergeDeepRight` 等方法保持跟`ramda`一样的使用方式,明细请[参考](https://ramdajs.com/docs/#merge) ### delay 一个 Promise 的 setTimeout 实现,用于在 effect 中手动延迟 ```js import { delay } from "solomon-utils"; // ... effects: { *fetch(_, { call, put }) { const { data } = yield call(fetch); yield delay("2000"); yield put({ type: "save/title", payload: data }); }, }, // ... ``` ### storage local storage 操作 > 需要先在 config.js 中的`storagePrefix: "__demo__",`配置`storage`前缀 > RN 版本下使用的是`import { AsyncStorage } from 'react-native'`,RN 版本下不需要配置前缀 ```js import { storage } from "solomon-utils"; storage.set("name", "zs"); ``` ### clone 深拷贝一个对象 ```js import { clone } from "solomon-utils"; const obj = [{}, {}]; const ojbClone = clone(obj); obj === objClone; // false obj[0] === objClone[0]; // false ``` ### isEmpty 判断一个值是否为空值 ```js import { isEmpty } from "solomon-utils"; isEmpty([1, 2, 3]); //=> false isEmpty([]); //=> true isEmpty(""); //=> true isEmpty(null); //=> false isEmpty({}); //=> true isEmpty({ length: 0 }); //=> false ``` ### 添加中 > 目前覆盖还不是很全面,希望大家一起讨论修改