哈啰 Quark Design 正式开源,新一代跨技术栈前端组件库

QuarkDesign是一款由哈啰平台UED和增长&电商前端团队联合打造的跨框架UI组件库,基于WebComponents实现,可在多种前端框架中无缝运行。此组件库旨在提供统一的视觉和交互体验,并支持按需引用及定制主题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
 

点击“开发者技术前线”,选择“星标”

让一部分开发者看到未来

0980647b6932bc28df2aa1cc711a9837.png

1

Quark Design是什么?

Quark(夸克)Design 是由哈啰平台 UED 和增长&电商前端团队联合打造的一套面向移动端的跨框架 UI 组件库。与业界第三方组件库不一样,Quark Design 底层基于 Web Components 实现,它能做到一套代码,同时运行在各类前端框架中。

Quark Design 历经一年多的开发时间,已在集团内部大量业务中得到验证,本着“共创、共建、共享”的开源精神,我们于即日起将 Quark 正式对外开源!

Github地址:https://github.com/hellof2e/quark-design (求star、求关注~😁)

122e2013fb42f6365915b7c293e9b889.png

注:文档表现/样式参考了HeadlessUI/nutui/vant等。

2

Quark Design与现有主流组件库区别是什么?

Quark(夸克)有别于业界主流的移动端组件库,Quark 能同时运行在业界所有前端框架/无框架工程中,做到真正的技术栈无关!我们不一样,:)

  • 不依赖技术栈(eg. Vue、React、Angular等)

  • 不依赖技术栈版本(eg. Vue2.x、Vue3.x)

  • 全新的Api设计(eg. 弹窗的打开属性由传统的 Visible 调整为符合浏览器原生弹窗的 open等)

  • 公司前端技术生态项目技术栈多时,保持视觉/交互统一

  • 完全覆盖您所需要的各类通用组件

  • 支持按需引用

  • 详尽的文档和示例

  • 支持定制主题

性能优势-优先逻辑无阻塞

我们以对 React 组件的 Web Components 化为例,一个普通的 React 组件在初次执行时需要一次性走完所有必须的节点逻辑,而这些逻辑的执行都同步占用在 js 的主线程上,那么当你的页面足够复杂时,一些非核心逻辑就将会阻塞后面的核心逻辑的执行。

比如首次加载时,你的页面中有一个复杂的交互组件,交互组件中又包含 N多逻辑和按钮等小组件,此时页面的首次加载不应该优先去执行这些细节逻辑,而首要任务应当是优先渲染出整体框架或核心要素,而后再次去完善那些不必要第一时间完成的细节功能。例如一些图像处理非常复杂,但你完全没必要在第一时间就去加载它们。

当我们使用 Web Components 来优化 React的时候,这个执行过程将会变得简洁的多,比如我们注册了一个复杂的逻辑组件,在 React 执行时只是执行了一个 createElement 语句,创建它只需要 1-2 微秒即可完成,而真正的逻辑并不在同时执行,而是等到“核心任务”执行完再去执行,甚至你可以允许它在合适的时机再去执行。

我们也可以简单的理解为,部分逻辑在之后进行执行然后被 render 到指定 id 的 Div 中的,那么为什么传统的组件为什么不能这么做呢?而非得 Web Components 呢?那就不得不提到它所包含的另一个技术特性:Shadow DOM。

组件隔离(Shadow Dom)

Shadow DOM 为自定义的组件提供了包括 CSS、事件的有效隔离,不再担心不同的组件之间的样式、事件污染了。这相当于为自定义组件提供了一个天然有效的保护伞。

Shadow DOM 实际上是一个独立的子 DOM Tree,通过有限的接口和外部发生作用。我们都知道页面中的 DOM 节点数越多,运行时性能将会越差,这是因为 DOM 节点的相互作用会时常在触发重绘(Repaint)和重排(reflow)时会关联计算大量 Frame 关系。

1e21409e979043ea390459eccba6032a.png

而对 CSS 的隔离也将加快选择器的匹配速度,即便可能是微秒级的提升,但是在极端的性能情况下,依然是有效的手段。

3

Quark 能为你带来什么?

提效降本几乎是所有企业的主旋律,Quark 本身除了提供了通用组件之外,我们还为大家提供了开箱即用的 CLI,可以让大家在直接在日常开发中开发横跨多个技术栈/框架的业务组件。比如一个相同样式的营销弹窗,可以做到:

  • 同时运行在不同技术栈(Angular、Vue、React等)的前端工程中

  • 同时运行在不同版本的技术栈中,比如能同时运行在 Vue2.x、Vue3.x 中

CLI 内部Beta版本已完成,开源日期略晚于Quark Design。

可先关注组织地址:https://github.com/hellof2e,关注更新。

适合场景:公司/团队内部发布一个独立的npm包,让其他团队安装使用,从而达到提效降本的目的。

npm i -g @quarkd/quark-cli
npx create-quark

f8e23b1f57beea6be655f4fb7bacdac0.png

相关链接

  • GitHub: https://github.com/hellof2e/quark-design

  • Quark Doc: https://quark-design.hellobike.com/

  • https://developer.mozilla.org/en-US/docs/Web/Web_Components

  • https://www.webcomponents.org/

  • 2022 Web Components 趋势解读和发展: 

    https://zhuanlan.zhihu.com/p/475779606

 
 

— 完 —

点这里👇关注我,记得标星呀~

前线推出学习交流一定要备注:

研究/工作方向+地点+学校/公司+昵称(如JAVA+上海+小白)

扫码加小编微信,进群和大佬们零距离

历史推荐

Oracle 推出 JDK 8 的直接替代品

谷歌推出开源操作系统KataOS

八大流行的微服务架构设计模式探究

好文点个在看吧

### 哈啰虚拟号码技术原理 哈啰虚拟号码的核心在于通过一种绑定模式来实现用户的隐私保护以及电话拨打功能。这种技术通常依赖于第三方云服务平台所提供的通信能力,例如华为云或阿里云的隐私保护通话(Private Number)。这些平台能够在不增加实体 SIM 卡的情况下,为用户提供额外的虚拟号码[^1]。 #### 技术架构概述 1. **虚拟号码分配** 当用户发起一次呼叫请求时,系统会动态分配一个临时的虚拟号码给该次通话使用。这个号码仅用于连接双方,并不会暴露任何一方的真实联系方式。 2. **双向路由机制** 虚拟号码作为中介,在实际拨打电话的过程中起到了桥梁作用。当 A 用户拨打 B 用户时,A 的真实号码会被替换为虚拟号码传递到运营商网络中;而接听方看到的是此虚拟号码而非 A 的原始手机号码。同理,B 返回的应答信号也会经过同样的处理流程再传回至 A 处。 3. **数据加密传输** 整个过程中涉及的所有敏感信息均需采用高强度加密算法加以保护,防止被非法截获或者篡改。这一步骤对于保障整个系统的安全性至关重要。 4. **生命周期管理** 每个生成出来的虚拟号码都有其特定的有效期,一旦超过设定时间范围即自动失效作废,从而进一步降低泄露风险。 ```python def generate_virtual_number(user_id, duration_minutes=60): import random virtual_num = f"+86{random.randint(1e9, 9e9)}" expiration_time = datetime.now() + timedelta(minutes=duration_minutes) db.insert({ 'user_id': user_id, 'virtual_number': virtual_num, 'expires_at': expiration_time }) return virtual_num ``` 上述代码片段展示了如何简单模拟创建并存储一个新的虚拟号码及其关联属性的过程。 --- ### 隐私保护措施 为了更好地达到用户隐私的目的,除了利用虚拟号码外还可能采取其他辅助手段: - 对话内容记录清除策略:每次通话结束后立即删除所有相关日志文件; - 实施严格的访问控制权限制度以减少内部人员滥用可能性; - 定期审计操作行为确保合规合法运行环境等等。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值