linshu-utils
v0.0.12
Published
在 node 环境中 stroage dom 相关的方法不能使用
Downloads
1
Readme
个人工具类包
在 node 环境中 stroage dom 相关的方法不能使用
MyStorage 工具
使用方法
import { MyStorage } from "linshu-utils";
// 设置类型 可以是 string number object array 等可以JSON 格式化的数据类型
const token = new MyStorage<string>(
"token", // 存储在本地缓存的键
{
expires: 1 * 60 * 60 * 1000, //过期时间 不设置为永久有效
once: false, // 只读取一次就失效 默认为false
},
"localStorage" // 默认是sessionStorage
);
实例属性方法
remove
删除方法data
当前数据 能直接赋值 当赋值undefined 或 null 时 触发remove 方法 其他触发 set 方法console.log(token.data) token.data = ''
set(value)
设置 值subscribe(event: 'set',callback:(data:T)=>any):void
订阅设置事件subscribe(event: 'remove',callback:()=>any):void
订阅移除事件
发布订阅
Topic 类 实例方法
subscribe(event: string | symbol, callback: Function)
订阅事件onceSubscribe(event: string | symbol, callback: Function)
订阅事件 只接收一次发布emit(event: string | symbol, ...params: any[])
推送信息unSubscribe(event: string | symbol, callback: Function)
取消当个订阅事件unSubscribeAll(event: string | symbol)
取消所有订阅事件
import { Topic } from 'linshu-utils'
const topic = new Topic();
const testSub = (...params: any[]) => {
console.log("sub1 接收到发布信息: ", ...params);
};
const testSub2 = (...params: any[]) => {
console.log("sub2 接收到发布信息: ", ...params);
};
topic.subscribe("test", testSub);
topic.subscribe("test", testSub2);
topic.onceSubscribe('test',(...params:any[])=>{
console.log('我只触发一次:',...params)
})
topic.emit("test", "发布test信息");
topic.unSubscribe("test", testSub); // 取消 testSub 订阅
topic.emit("test", "发布test信息2");
topic.unSubscribeAll("test"); //取消所有订阅
topic.emit("test", "发布test信息3");
获取变量类型方法
import { getType } from 'linshu-utils'
getType(1) // number 内部通过 Object.prototype.toString 获取 (转小写) ,获取类的 内部属性 [[Class]] 如果是非内部类 可以通过 设置 get [Symbol.toStringTag]