前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >基于通用组件语言规范的声明式组件库,腾讯WeComponents正式开源

基于通用组件语言规范的声明式组件库,腾讯WeComponents正式开源

作者头像
腾讯开源
发布于 2019-12-10 15:10:06
发布于 2019-12-10 15:10:06
1.5K0
举报

面对各类运营需求,微信游戏团队在B端开发实践中进行思考和提炼,创立了通用组件语言规范(CLS,Common Components Language Specification),对所有组件进行统一抽象,指引无终端依赖、无语言依赖、无框架依赖的标准化组件开发模式。并基于此规范实现了一套 Vue.js 的声明式组件库,以标准化JSON描述页面组成,写完JSON就完成了页面开发,以此来简化前端工作,提高开发效率。

适用场景

B端系统中最常见的需求包含表单、列表、图表。表单用来收集用户数据,列表用来呈现数据,图表用于数据可视化。解决了这三个场景,就解决了大部分的需求。

来看一个常见的需求:需要提供一个搜索框,点击查询按钮后,展示结果列表,列表展示图标、描述等几个字段,需要支持翻页。

像产品经理提需求一样写代码,是什么样的体验?

首先,需要一个包含搜索框和查询按钮的表单,并在查询按钮点击后触发事件。

然后,需要有一个列表支持对数据做回显,个别字段还需要进行格式化的转换,并支持翻页。在格式化时,第一列 icon 展示了图标;第二列 name 原样输出;第三列 size 涉及到数字做了右对齐,且带上了字节单位G;最后一列允许用户进行交互操作。

最后,把查询到的数据设置为列表的值,就完成了开发。

来看看最终的页面效果。

这就是使用 WeComponents 组件库进行页面开发的过程,采用JSON作为载体,以统一的声明式结构,在组件粒度描述页面构成。在组件内对外屏蔽了产品规范、交互规范、设计规范、前端规范,开发时按照组件粒度组织页面,像产品经理一样聚焦业务逻辑本身,代码简洁易理解。

特点

WeComponents 在使用中具有以下的特点。

1. 声明式

WeComponents 是声明式编程的实践,不像命令式编程需要一步步告诉计算机该怎么做,而是描述最终需要的结果是什么样子,执行过程封装在组件内部以及组件机制内。JSON即是声明式编程的一种表述方式。

2. 数据驱动

MVVM的设计模式,使得程序员可以更关注数据本身的改变,弱化对界面展现的掌控。WeComponents 将这种模式实现得更加彻底,将所有组件分析抽象后,建立统一的数据结构,以通用的属性来描述组件构成,以通用方法来操作组件。

组件设计更关注数据结构,以数据描述组件,不受组件表现的影响。在同等结构下,组件的表现可以通过修改组件类型、属性、布局等,达到快速切换。

3. 开发者友好

因 WeComponents 是对所有组件统一抽象下的表述,所以理解了组件模型就理解了整个组件库,不用依赖组件开发者自身素质差异产生不同的组件描述,免去频繁查阅不同组件的说明文档。也易于开发对应的可视化页面制作工具,维护构成页面的JSON。

通用组件语言规范

通用组件语言规范是将所有组件抽象为统一模型的一种标准描述方式,因采用JSON作为描述方式,天然是跨端的,可以按照需求,实现为具体运行环境下、具体语言、具体框架的组件库。

通用组件语言规范对组件的抽象体现为属性和方法。属性是对组件的声明式描述,包含基础信息、实体属性、扩展属性;方法是外部对组件的操作,包含针对不同级别属性的get/set操作。

详细可查阅:

https://tencent.github.io/WeComponents/#/doc/principle/cls

期待贡献

借助通用组件语言规范CLS,微信游戏团队实现了 Vue.js 组件库 WeComponents,并使用此组件库降低了开发门槛,提升了开发效率。对于其他框架,如 React 暂未实现;对于其他优秀的组件库,还没有对接。真诚的期望通用组件语言规范能在不同框架、不同组件库得到支持,利用统一的思路简化组件使用,让开发更简单。

WeComponents 说明文档:https://tencent.github.io/WeComponents/

WeComponents 正式开源

Github 开源地址:

https://github.com/Tencent/WeComponents

(点击文末阅读原文直接访问)

请给 WeComponents 一个 Star !

欢迎提出你的 issue 和 PR!

WeComponents 国内镜像地址:

https://git.code.tencent.com/Tencent_Open_Source/WeComponents

(登录后才能访问公开项目)

腾讯工蜂源码系统为开源开发者提供完整、最新的腾讯开源项目国内镜像

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯开源 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
鸿蒙声明式 UI 开发:从范式革新到工程实践全指南
在软件界面开发领域,存在两种截然不同的编程范式:命令式 UI 如同精密的机械操作手册,开发者需逐行指令控制 UI 元素的创建、属性设置与交互逻辑。以 Android 开发为例,创建基础按钮需经历对象实例化、属性配置、事件绑定等多步操作:
谢道韫
2025/06/14
830
开源公告|腾讯tmagic-editor页面可视化编辑器对外开源
项目简介 腾讯tmagic-editor是一个所见即所得的页面可视化编辑器,基于tmagic-editor可以快速搭建可视化页面生产平台,让非技术人员可以通过拖拽和配置,自助生成H5页面、PC页面、TV页面,大大降低页面生产成本,实现零代码/低代码生成页面。 以下是腾讯视频会员业务基于tmagic-editor搭建的可视化页面搭建平台示意图。tmagic-editor已经用于腾讯视频会员、爱玩游戏、云视听极光、腾讯会议等十几个腾讯业务,每月生产和发布数百个页面。 基于可视化编辑器的页面生产流程 一、物
腾讯开源
2022/04/27
24.1K0
开源公告|腾讯tmagic-editor页面可视化编辑器对外开源
京东猎户座发布开源,配置化一键生成cms系统
在降本提效的大环境下,猎户座系统为了扩展更多应用场景,近期完成了第一阶段的开源工作。此次开源的代码内容涉及两个代码库,内容为CCMS管理系统核心配置化功能以及包含表格列与表单项在内的常用组件。
天涯泪小武
2021/12/09
9650
京东猎户座发布开源,配置化一键生成cms系统
KCL:声明式的云原生配置策略语言
大家好,我是来自蚂蚁集团的同学,很高兴能在 GIAC 的编程语言新范式板块和大家分享《KCL 配置策略语言》。KCL 语言是蚂蚁内部的 Kusion 解决方案中针对云原生基础设施配置代码化自研的 DSL 语言,目前已经在建站场景等一些场景开始小范围推广试用。
梦醒人间
2021/09/08
1K1
KCL:声明式的云原生配置策略语言
百度开源的低代码前端框架,支持网页和移动端页面开发
amis 是一个低代码前端框架,它使用 JSON 配置来生成页面,可以减少页面开发工作量,极大提升效率。
winty
2023/08/23
1.6K0
百度开源的低代码前端框架,支持网页和移动端页面开发
腾讯TDesignFlutter组件库开源啦!🎉🎉🎉
作为一款诞生于腾讯内部开源、经过超500项内部业务检验的企业级设计体系,TDesign 汇集了腾讯众多优秀组件库能力和设计研发经验。之前,TDesign已经支持 Vue2、Vue Next、React 等业界主流技术栈,方便使用者快速开发桌面端、移动端以及小程序等多个版本的应用程序,从而更好地服务设计师和开发者,助力企业提升设计研发效能,为产品体验设计带来新的思路。
zfly
2023/12/07
6.4K2
腾讯TDesignFlutter组件库开源啦!🎉🎉🎉
爱奇艺RN低代码引擎:千变万化、快速搭建的万花筒
React Native 是具有高动态化能力的跨平台开发框架,低代码是近几年非常热门的趋势,而爱奇艺早在 2018 年就尝试将二者结合,开发出了万花筒引擎和专题页低代码平台,用于快速搭建爱奇艺 App 中的各类内容展示型页面,赋能不会写代码的内容运营和编辑们,针对热门的综艺和影视剧内容,用很少的人力投入就能快速搭建出具有丰富排版和动画效果的专题页面,并直接投放上线。
深度学习与Python
2022/06/11
9390
爱奇艺RN低代码引擎:千变万化、快速搭建的万花筒
组件化通用模式
一、前言 模式是一种规律或者说有效的方法,所以掌握某一种实践总结出来的模式是快速学习和积累的较好方法,模式的对错需要自己去把握,但是只有量的积累才会发生质的改变,多思考总是好的。(下面的代码实例更多是 React 类似的伪代码,不一定能够执行,函数类似的玩意更容易简单描述问题) 二、前端的关注点迁移 这篇文章主要介绍现在组件化的一些模式,以及设计组件的一些思考,那么为什么是思考组件呢?因为现在前端开发过程是以组件为基本单位来开发。在组件化被普及(因为提及的时间是很早的或者说有些厂实现了自己的一套但是在整个前
企鹅号小编
2018/01/17
1.2K0
组件化通用模式
干货 | 已配置4000+页面,携程前端组件化探索之“乐高”运营系统
市场部活动组主要负责各种运营活动的相关开发,分为常规运营活动和定制运营活动。常规运营活动因为组件(模块)具有复用性,并且配置化需求非常多,因此我们建设了一个可视化页面搭建平台——乐高(legao)活动平台。乐高平台将活动页面拆分为各种组件模块,运营人员通过自主的配置就能快速上线各种运营页面。
携程技术
2019/10/14
2.3K0
干货 | 已配置4000+页面,携程前端组件化探索之“乐高”运营系统
伴鱼运营活动前端配置化实践
链接:https://juejin.cn/post/6906706659813359630
coder_koala
2021/03/09
6110
腾讯Kuikly框架鸿蒙版正式开源 —— 揭秘卓越性能适配之旅
(测试场景是一个较复杂的Feed流场景,机型均为华为Mate60) ● 在鸿蒙平台上,Kuiky打开页面速度比RN快6倍:
腾讯开源
2025/06/10
2600
腾讯Kuikly框架鸿蒙版正式开源 —— 揭秘卓越性能适配之旅
低代码调研与思考
低代码平台:是通过少量代码或无需编码就可以快速生成应用程序的开发平台。通过可视化进行应用程序开发的方法,使开发人员可以通过图形化的用户界面,使用拖拽组件和模型驱动的逻辑来创建网页和移动应用程序。
用户8080466
2022/12/05
1.3K0
滴滴开源基于金融场景的Vuejs组件库Mand Mobile
由于金融产品种类繁多,功能相对来说较复杂,设计及开发成本较高。从各种表单的填写,验证码/密码输入,到图表展示,再到数字键盘和收银台等,这些功能使用频率较高,对于视觉一致性和兼容性都有着更高的要求。
钱曙光
2019/07/02
1.2K0
滴滴开源基于金融场景的Vuejs组件库Mand Mobile
HarmonyOS ArkTS声明式UI开发实战教程
在HarmonyOS生态快速发展的当下,ArkTS作为新一代声明式UI开发框架,正在引发移动应用开发范式的变革。笔者曾在多个跨平台框架开发中经历过"命令式编程之痛",直到接触ArkTS后才发现,原来UI开发可以如此直观高效。本文将通过完整案例解析,带您掌握声明式UI设计的精髓。
李游Leo
2025/03/16
1540
HarmonyOS ArkTS声明式UI开发实战教程
前端如何破解 CRUD 的循环
据说,西西弗斯是一个非常聪明的国王,但他也非常自负和狂妄。他甚至敢欺骗神灵,并把死者带回人间。为此,他被宙斯(Zeus)惩罚,被迫每天推着一块巨石上山,但在接近山顶时,巨石总是会滚落下来,他不得不重新开始推石头,永远困在这个循环中…
_sx_
2023/10/20
4101
前端如何破解 CRUD 的循环
第一篇|腾讯开源项目盘点:WeUI,WePY,Tinker,Mars等
开源展示了人类共同协作,成果分享的魅力,每一次技术发展都是站在巨人的肩膀上,技术诸多创新和发展往往就是基于开源发展起来的,没有任何一家网络公司可以不使用开源技术,仅靠自身技术而发展起来。
腾讯技术工程官方号
2019/05/16
1.3K0
第一篇|腾讯开源项目盘点:WeUI,WePY,Tinker,Mars等
聊聊 React 组件库的技术选型与设计
最近在业务中开发了一套定制化的 C 端组件库,在这个过程中遇到了一些组件库技术选型和设计的问题,在参考公司内外的多个组件库后确定了最终的方案。本文希望通过向读者介绍技术选型的过程中的方案比较和组件库设计中的考量,让读者在组件库的技术选型和设计上有所启发。
前端迷
2021/03/18
2.1K0
聊聊 React 组件库的技术选型与设计
TDesign 组件库技术方案指北
TDesign 是腾讯各业务团队在服务业务过程中沉淀的一套企业级设计体系,于2021年12月底正式对外开源。TDesign 用到了哪些广受欢迎的开源技术,选择这些技术的原因是什么?TDesign 官方支持了众多开发技术栈,为什么选择各仓库原生开发而不是转译生成代码?本篇会从从仓库目录结构开始,通盘分析 TDesign 的技术选型和原因。
TDesign
2022/07/08
3.3K0
腾讯 TDesign 的开源故事,看完秒懂
TDesign 是腾讯各业务团队在服务业务过程中沉淀的一套企业级设计体系,于2021年12月底正式对外开源,它提供一套完整的设计体系,目前同时支持4个框架。由于参与贡献的人数众多,支持的框架数量也多,所以开源之后,大家对 TDesign 充满好奇,好奇为什么腾讯要推出 TDesign 作为企业级设计体系, TDesign 如何平衡通用和业务需求,满足集团诉求;想知道在如此多框架是如何保证不同框架版本同步和功能持续迭代等等。本文带大家快速了解 TDesign 是如何诞生、开源和运作的。
TDesign
2022/05/17
6920
腾讯 TDesign 的开源故事,看完秒懂
【通用组件】高效生成 antd Table 组件的操作列
业务中台重构后,新的框架基于 antd 整套生态,采用声明式的设计思路,可以通过 JSON 的方式快速构建 CRUD 页面的查询表单、Table 表格、新增编辑表单
玖柒的小窝
2021/12/11
2.1K0
【通用组件】高效生成 antd Table 组件的操作列
推荐阅读
相关推荐
鸿蒙声明式 UI 开发:从范式革新到工程实践全指南
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档