更新记录

1.0.0(2025-05-23) 下载此版本

  • 初始版本发布。

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.6.8,Android:支持,iOS:支持,HarmonyNext:支持 × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
× × × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

kux-symbol

基于 utsSymbol 实现, 提供跨平台唯一标识符解决方案。

特性

  • 🚀 完全兼容 ES6 Symbol 核心特性
  • ⚡ 支持全局符号注册表 (类似 Symbol.for()/Symbol.keyFor()
  • 🌐 内置异步迭代器支持 (Symbol.asyncIterator)
  • 🔒 严格的类型安全校验
  • 🛡️ 禁止隐式类型转换 (运算符重载保护)

快速开始

import { useSymbol }  from '@/uni_modules/kux-symbol';

// 创建唯一符号
const sym1 = useSymbol('kux-button');
const sym2 = useSymbol('kux-button');
console.log(sym1 == sym2); // false

API文档

核心方法

方法 描述
KuxSymbol.create(desc?) 创建新符号 (类似 Symbol()
KuxSymbol.forKey(key) 全局注册访问 (类似 Symbol.for()
KuxSymbol.keyFor(sym) 反向查询键名 (类似 Symbol.keyFor()

内置符号

符号 协议
KuxSymbol.asyncIterator 异步迭代器协议
KuxSymbol.hasInstance 类型检查协议

接口定义

/**
 * interface.uts
 * uts插件接口定义文件,按规范定义接口文件可以在HBuilderX中更好的做到语法提示
 */

export interface IKuxSymbol {
    // uniqueId: string
    readonly description: string;
    // asyncIterator: IKuxSymbol;
    // hasInstance: IKuxSymbol;
    // create(description?: string | null): IKuxSymbol;
    // forKey(key: string): IKuxSymbol;
    // keyFor(symbol: IKuxSymbol): string | null;
    toString(): string;
    getAsyncIterator(obj: UTSJSONObject): AsyncIterator | null;
    checkInstance(obj: any): boolean;
    // #ifndef APP-ANDROID
    valueOf(): never;
    // #endif
}

export type AsyncIteratorResult = {
    value?: number | null;
    done: boolean;
}

export type AsyncIterator = {
    next(): Promise<AsyncIteratorResult>;
};

export type AsyncIterable = {
    getAsyncIterator(): AsyncIterator;
}

export declare function useSymbol(description: string): IKuxSymbol;

最佳实践

跨组件符号共享

// ComponentA
const APP_SYMBOL = KuxSymbol.forKey('app.unique');

// ComponentB
const sameSymbol = KuxSymbol.forKey('app.unique');
console.log(APP_SYMBOL === sameSymbol); // true

结语

kux 不生产代码,只做代码的搬运工,致力于提供uts 的 js 生态轮子实现,欢迎各位大佬在插件市场搜索使用 kux 生态插件:https://ext.dcloud.net.cn/search?q=kux

友情推荐

  • TMUI4.0:包含了核心的uts插件基类.和uvue组件库
  • GVIM即时通讯模版:GVIM即时通讯模版,基于uni-app x开发的一款即时通讯模版
  • t-uvue-ui:T-UVUE-UI是基于UNI-APP X开发的前端UI框架
  • UxFrame 低代码高性能UI框架:【F2图表、双滑块slider、炫酷效果tabbar、拖拽排序、日历拖拽选择、签名...】UniAppX 高质量UI库
  • wx-ui 基于uni-app x开发的高性能混合UI库:基于uni-app x开发的高性能混合UI库,集成 uts api 和 uts component,提供了一套完整、高效且易于使用的UI组件和API,让您以更少的时间成本,轻松完成高性能应用开发。
  • firstui-uvue:FirstUI(unix)组件库,一款适配 uni-app x 的轻量、简洁、高效、全面的移动端组件库。
  • easyXUI 不仅仅是UI 更是为UniApp X设计的电商模板库:easyX 不仅仅是UI库,更是一个轻量、可定制的UniAPP X电商业务模板库,可作为官方组件库的补充,始终坚持简单好用、易上手

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问