我们非常高兴地宣布,OpenTiny Vue Playground 正式上线!

链接:https://opentiny.github.io/tiny-vue-playground/

在此非常感谢 xiaoy 同学对 OpenTiny Vue Playground 项目的贡献!

xiaoy 同学是一名大三的学生,今年3月份与 OpenTiny 结缘,给我们提了很多改进建议,并贡献了 OpenTiny Vue Playground 项目,该项目主要用于在线体验 OpenTiny 的组件,并支持以链接形式分享出去,这对于复现组件问题非常有帮助。

以下是该项目支持的特性:

  • 基于 @vue/repl 和 @opentiny/vue 搭建
  • 支持 Vue2、Vue3
  • 支持 JSX
  • 支持 Less
  • 支持切换 Vue / OpenTiny / TypeScript 版本
  • 支持切换 CDN 源
  • 支持深色模式
  • 支持链接分享

以下是 xiaoy 同学的开源经验。

我的开源经历

Hi,这里是 xiaoy。

我是从今年三月份开始有了参与开源的想法,之前一直想自己学习一下组件库,也参考一些技术文章自己搭建了一个组件库框架,可是后来觉得与其一个人单打独斗,不如参与到真正的项目里面去,于是就萌生给组件库提 issue 和 pr 的想法。正好,三月多看到了 opentiny 的宣传,了解了这个组件库,就觉得这个组件库和别的不太一样,

我觉得一个好的开源项目是要有自己的设计理念在里面的。很巧的是,我当时也在了解 vue-demi,它也是用来实现同时支持vue2和vue3的,于是就想进一步的了解 opentiny。在三四月份,自己比较忙,没有多少时间了解这个项目,同时想要给 opentiny 提一些 pr 也是有点门槛的,另外当时我对参与开源的流程是不清楚的,如何提pr,如何同步上游仓库... 那么参与开源的想法就被搁置了。

五月份,我因事回学校,在写自己的项目的时候,一个我在项目里引用的 npm 包有了bug,我看了对应仓库的issue,发现问题不是很难,就尝试自己修复了bug,提了 pr, 当我的代码被合并的时候,我内心是十分激动的,就这样,我陆陆续续给一些自己遇到bug的仓库提了issue 和 pr,虽然只是更改了几行代码而已。

我之前就知道开源之夏这个活动,并且今年也是准备要申请项目的,结果 opentiny 也参与了开源之夏,这再好不过了,最后我选择了给 opentiny 增加 playground 这个项目,也提交了项目申请书。可是因为一些原因,这个项目不能参与开源之夏活动了,那我在想,规矩是死的,人是活的,我也可以不通过开源之夏这个途径,直接提pr也是参与开源,接着我就联系了 kagol 老师,后来就是实现 opentiny 的 playground了。

之后,我也会持续关注 opentiny 组件库的。

参与开源,并没有想象中的那么难,可以从一些 good first issue开始。

从开源中学到什么?

我现在是大三,如果自己参与了开源,那么这部分经历写在简历上,更能证明你的代码能力,这是一部分原因。

当我尝试参与开源开始,尝试去阅读一些源码,我是可以感受到自己的能力是在显著的提升,其实当时对于开源之夏,我最初是想为 opentiny 的 tree 组件实现虚拟滚动的,为此,我还顺着网线去学习 dev-ui 的tree组件源码,还顺手提了个pr,dev-ui 是通过 tsx 实现的,另外它每个文件代码都很少,200行左右,学习起来更简单,它的 tree 组件中一些方法的实现,用了 hook 的写法,代码看起来是更清晰的,b站还有 kagol 老师的讲解。之后我去简单了解了一下 opentiny 组件库的 tree 组件,发现tree组件好像没有拍平,在这种情况下为tree组件增加虚拟滚动,对我来说难度太大了,因此放弃。但在学习源码的过程中,我的收获很大,学编程的过程,就是需要不断的写,可以造轮子,可以复刻 github 上感兴趣的项目,唯一要注意的是,需要不断突破自己的舒适区。

参与开源会隐形地不断 push 我自己,之前我对 vue 的源码只是停留在面试豆腐块,可是当我去实现 playground这个项目的时候,因为 opentiny 是同时支持 vue2 和 vue3 的,那么 playground 也要有相同的功能,在实现这个需求的时候,我对 vue 的源码有了更清晰的认识,比如编译时干了什么,运行时怎么做,为了让 @vue/repl支持 vue2, 我也看了它的源码,这是我第一次独立的读懂一个项目的源码,真的成就感满满,同时做开源和写自己的项目不一样,使用这个项目的人很多,那么考虑的细节也就很多,代码不要有一些坏味道,这也无形中提升了我的能力,也让我更用心的去打磨一个项目。

以上就是 xiaoy 同学的开源经验,也欢迎你参与到 OpenTiny 开源中来

xiaoy 同学也是一位热爱技术的程序媛,以下是她的博客地址:

OpenTiny Vue Playground 源码地址:https://github.com/opentiny/tiny-vue-playground(欢迎 Star )

关于 OpenTiny

OpenTiny 是一套华为云出品的企业级组件库解决方案,适配 PC 端 / 移动端等多端,涵盖 Vue2 / Vue3 / Angular 多技术栈,拥有主题配置系统 / 中后台模板 / CLI 命令行等效率提升工具,可帮助开发者高效开发 Web 应用。

核心亮点:

  1. 跨端跨框架:使用 Renderless 无渲染组件设计架构,实现了一套代码同时支持 Vue2 / Vue3,PC / Mobile 端,并支持函数级别的逻辑定制和全模板替换,灵活性好、二次开发能力强。
  2. 组件丰富:PC 端有80+组件,移动端有30+组件,包含高频组件 Table、Tree、Select 等,内置虚拟滚动,保证大数据场景下的流畅体验,除了业界常见组件之外,我们还提供了一些独有的特色组件,如:Split 面板分割器、IpAddress IP地址输入框、Calendar 日历、Crop 图片裁切等
  3. 配置式组件:组件支持模板式和配置式两种使用方式,适合低代码平台,目前团队已经将 OpenTiny 集成到内部的低代码平台,针对低码平台做了大量优化
  4. 周边生态齐全:提供了基于 Angular + TypeScript 的 TinyNG 组件库,提供包含 10+ 实用功能、20+ 典型页面的 TinyPro 中后台模板,提供覆盖前端开发全流程的 TinyCLI 工程化工具,提供强大的在线主题配置平台 TinyTheme

欢迎加入 OpenTiny 开源社区。

添加微信小助手:opentiny-official,一起参与共建!

OpenTiny 官网:https://opentiny.design/

Vue组件库https://opentiny.design/tiny-vue

Angular组件库https://opentiny.design/tiny-ng

OpenTiny 代码仓库:https://github.com/opentiny/ (欢迎 Star )

往期文章推荐

但因热爱,愿迎万难,OpenTiny 社区增加一枚前端程序媛贡献者🎉的更多相关文章

  1. No-Touch Integration 在SharePoint中使用社区支持的Silverlight应用程序

    No-Touch Integration 在SharePoint中使用社区支持的Silverlight应用程序         No-Touch Integration应该是最简单的方法了.将Silv ...

  2. 重磅!华为云社区·CSDN【寻找黑马程序员】有奖征文活动奖项公布!!

    华为云社区·CSDN[寻找黑马程序员]第一期有奖征文活动在大家的鼎力支持下顺利落幕啦,非常感谢大家一直以来的支持~现在小宅就要隆重公布本次活动的奖项了!! 请各位获奖的伙伴在8月18日前私信联系提供联 ...

  3. 副业收入是我做程序媛的3倍,工作外的B面人生

    到“程序员”,多数人脑海里首先想到的大约是:为人木讷.薪水超高.工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是 ...

  4. 面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序

    面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序 Ajax 为更好的 Web 应用程序铺平了道路 在 Web 应用程序开发中,页面重载循环是最大的一个使用障碍,对于 Java™ ...

  5. 弄啥嘞?热爱你的Bug

    有人喜欢创造世界,他们做了开发者:有的人喜欢开发者,他们做了测试员.什么是软件测试?软件测试就是一场本该在用户面前发生的灾难提前在自己面前发生了,这会让他们生出一种救世主的感觉,拯救了用户,也就拯救者 ...

  6. OpenTiny 跨端、跨框架组件库升级TypeScript,10万行代码重获新生

    摘要:一份精心准备的<JS项目改造TS指南>文档供大家参考,顺便介绍TS 基础知识和 TS 在 Vue 中的实践. 本文分享自华为云社区<历史性的时刻!OpenTiny 跨端.跨框架 ...

  7. 参与开源之夏 x OpenTiny 跨端跨框架 UI 组件库贡献,可以赢取奖金🏆!这份《OpenTiny 开源贡献指南》请收好🎁!

    大家好,我是 Kagol. 近期有几位朋友在 OpenTiny 技术交流群里询问我们在开源之夏(OSPP)的项目,希望能提前做一些准备工作. 这里给大家简单介绍下开源之夏. 开源之夏是由中科院软件所& ...

  8. Vim 中文社区:期待你的加入

    我们的愿景 Vim 中文社区一直比较零散,缺少凝聚力,现有的一些群经常也是水的可以的,讨论各种无关紧要的内容,于是导致很大一部分人,将这些群丢入了群助手,渐渐地他们也淡出了 vim 中文社区. 而我理 ...

  9. 华为云 OpenTiny 跨端、跨框架企业级开源组件库项目落地实践直播即将开启!

    大家好,我是 Kagol,公众号:前端开源星球. "你们这个产品怎么只能在电脑上适配呀?我想在手机上看都不行,太麻烦了!!" "你们这个产品看起来太简单了,我想要@@功能 ...

  10. 程序员的复仇:11行代码如何让Node.js社区鸡飞狗跳

    来源自:http://www.techug.com/node-js-community 几天前,一名 NPM(Node.js Package Manager)社区的贡献者 Azer Koçulu 出于 ...

随机推荐

  1. 讯飞星火大模型 与New Bing实测对比

    昨天科大讯飞发布了讯飞星火认知大模型,在发布会现场实测大模型的7种核心能力,并发布了它在教育.办公.汽车.数字员工领域的应用成果.科大讯飞董事长刘庆峰表示:认知大模型展示了通用人工智能的曙光,讯飞星火 ...

  2. JavaWeb之day01html

    目录: 1.html简介 - html的操作思想(*****) 2.文字标签和注释标签 3.标题标签.水平线标签和特殊字符 4.列表标签 5.图像标签(********) 6.路径介绍(相对路径*** ...

  3. Netty(1)——NIO基础

    本篇主要介绍Java NIO的基本原理和主要组件 Netty是由JBOSS提供的Java开源网络应用程序框架,其底层是基于Java提供的NIO能力实现的.因此为了掌握Netty的底层原理,需要首先了解 ...

  4. Django4全栈进阶之路10 url路由设置

    在 Django 4 中,可以在主路由文件中设置和管理子路由.通常,我们会为每个应用程序创建一个子路由文件,以便更好地组织代码和管理路由. 以下是 Django 4 中设置主路由和子路由的示例: 首先 ...

  5. 代码随想录算法训练营Day12 栈与队列

    代码随想录算法训练营 代码随想录算法训练营Day12 栈与队列| 239. 滑动窗口最大值  347.前 K 个高频元素  总结 239. 滑动窗口最大值 给定一个数组 nums,有一个大小为 k 的 ...

  6. Kubernetes(k8s)一次性任务:Job

    目录 一.系统环境 二.前言 三.Kubernetes Job简介 四.创建一次性任务job 4.1 创建一个简单任务的job 4.2 创建需要执行多次的job任务 五.测试job失败重试次数 六.j ...

  7. 【Python】如何在FastAPI中使用UUID标记日志,以跟踪一个请求的完整生命周期

    为什么要使用uuid标记日志? 在分布式系统中,一个请求可能会经过多个服务,每个服务都会生成自己的日志.如果我们只使用普通的日志记录,那么很难将这些日志串联在一起,以至难以跟踪一个请求的完整生命周期. ...

  8. 快速上手kettle(三)壶中可以放些啥?

    目录 序言 一 .kettle这壶能装些啥 二.Access输入 2.1 准备Acess数据库和表 2.2 新建一个转换并设置 2.3 启动转换预览数据 三.CSV文件输入 3.1 准备csv文件,并 ...

  9. 使用 conda 和 Jupyter 创建你的自定义 R 包,转换笔记为幻灯片

    创建你的自定义 R 包 出于用户使用方便考虑,Anaconda 已经在 "R Essentials" 中打包了一些最常用的数据科学 R 包.使用 conda metapackage ...

  10. 从0搭建Vue3组件库(十):如何搭建一个 Cli 脚手架

    本篇文章将实现一个名为create-easyest脚手架的开发,只需一个命令npm init easyest就可以将整个组件库开发框架拉到本地. 创建 Cli 包 首先,我们在 packages 目录 ...