这一年,Vue.js 生态开源之旅带给我很大收获~

大家好,我是若川。我持续组织了近一年的源码共读活动,感兴趣的可以 点此扫码加我微信 lxchuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外:目前建有江西|湖南|湖北籍前端群,可加我微信进群。

a6bcdaf6a4052c6bce5264d7c99e4e6a.jpeg

扫码加我微信 lxchuan12、拉你进源码共读


前言

大家好,转眼又到一年的尾巴了。好久没写文章了,因为今年工作之余更多的是活跃在开源社区,借着年底思考怀疑人生(偷懒)的空闲时间想跟大家分享今年我在Vue.js生态的做的事情和对开源的看法,也算是「2021」我给Vue.js生态贡献代码的这一年的续篇吧。

参与开源缘由

在参与开源之前其实我就对开源社区存在向往,我觉得做开源是一件很酷很有意思的事情。折腾GitHub其实有几年了,但之前更多的是做一些自己的小玩具和阅读一些项目的优秀实践。真正开始参与开源贡献是2021年7月给vuejs/composition-api提交了一个文档格式错误的PR,当时因为某个业务项目用的是Vue2,并且我们想在项目中使用组合式API,所以跟它结下了“缘分”。从那时起有一段时间就是上班用它糊业务,下班给它水PR,从此开始了开源之路。

如何参与开源

关于这个问题其实在「2021」我给Vue.js生态贡献代码的这一年这篇文章里已经讲过了,这里就简单啰嗦两句。

1. 找准切入点

找到一个合适的切入点开始蛮重要的,这很大程度上会决定你能不能坚持下来。我建议从感兴趣的领域和项目开始,因为开源大多时候都是靠爱发电,没有一定的热情和兴趣支撑,大多时候都没法坚持下来。

2. 寻找参照物

这里说的参照物其实有两方面,一方面是物,另一方面是人,人的话用参照物来比喻可能有点不合适,或者应该说是榜样,我觉得找到一个榜样能更好的支撑你前进和解决问题。物的话其实就是代码,遇到一些比较棘手的问题时很多时候我们都可以通过阅读一些代码来找到答案。

3. 建立信心

循序渐进的从一些简单的点开始,并在这个过程中建立信心能帮助我们更好的参与进来,比如从给项目修复错别字和补充测试用例开始。如果一开始就上地狱难度的话,大多时候只会让我们受挫和收获负反馈,那可能还没开始就已经结束了。

4. 熟悉规则

每一个领域都有自己的一套规则,我们首先需要熟悉游戏规则才能玩懂游戏。拿开源贡献来说,提Issue时带最小复现、提PR前阅读贡献指南等就是规则。

5. 端正心态

以一个好的心态参与开源其实是最重要的,因为一开始在学习和尝试的过程中我们可能得不到正反馈甚至是有一些负反馈,坚持吧,总会有收获的。还有就是不要以功利的心态去参与开源,我自己就迷失过,这样会很累并且没有收获。抱着学习和探索的心态去做可能会有意想不到的收获。

参与开源能得到什么

我们常说做开源全凭“为爱发电”,其实是有一定道理的,靠开源获得比较可观的物质收入的相对来说会比较少。但是坚持参与开源一定能获得的就是技术成长和成就感。

2022开源之旅

前面啰嗦了一堆,总算是要进入正题了,下面就跟大家分享过去一年我在Vue.js生态做的一些事情和收获。

加入VueUse团队

我们都知道Vue3引入了组合式API大大提升了逻辑复用能力,我们可以通过封装一些组合式函数从而以较强扩展性和可维护性来完成功能逻辑。我在学习组合式API的时候,在社区发现了VueUse,一个提供了实用的组合式函数集合库,通过阅读它的设计与实现加深了我对组合式API的理解。在这个过程中,因为给VueUse做了一些微薄的贡献,在2022/02/14收到了@AnthonyFu的邀请,加入了VueUse团队。这对我来说不止是一个特别的情人节礼物:),它激励我继续活跃在开源社区(我想我们总是需要一些动力来保持我们前进)。关于VueUse,我写了一篇浅谈VueUse设计与实现,有兴趣的小伙伴可以看看。

9012571338b05116e8c3fe38768cfe7b.png

写了一个Vite插件

如果说Vue的组合式API是提升我研发体验的倚天剑,那么Vite一定是那把屠龙刀。Vite不仅快,它的插件机制实现也很有意思,在了解它的过程中,我实现了vite-plugin-vue-inspector,它的功能是点击页面元素帮助我们自动打开IDE并跳转到相应的Vue组件,一次连接Vue与Vite生态的有趣体验。这两年见证了Vite生态的光速发展,我觉得其中一个原因就是得益于它易用且扩展性强的插件设计机制。

eff194d0074843cb3d317ab00e004612.gif


发起Vue.js挑战

过去我一直在寻找一个可以让每个人一起学习Vue.js的项目,所以撸了一个Vue.js在线挑战平台,它提供了一些题库,开发者可以在线进行挑战。通过这些挑战,我们可以进一步了解和熟悉Vue.js,希望它能对想学习Vue.js的同学有所帮助。如果之前玩过type-challenges的童鞋应该会对它感到眼熟,它深受type-challenges的启发,这个项目意在帮助大家更好地了解Vue.js,或只是单纯的享受挑战的乐趣。

1f64f7bad0798d19169aeb8933b3223a.png

使用Vue.js构建命令行界面

CLI在前端工程化的应用非常多,那么有没有办法能让前端小伙伴以低成本的方式构建CLI应用呢?带着这个思考,继将 Vue 渲染到嵌入式液晶屏后,我将Vue渲染到了命令行界面上。Temir,一个使用Vue构建命令行界面的库,并且支持HMR。可以让前端小伙伴像平时使用Vue构建Web应用一样来构建CLI应用。

5957903bbd3699d5e7cb38559534ecf5.gif


用Vue.js写一个命令行贪吃蛇游戏

前面提到了Temir,我们可以使用它来打造自己的工具链,那么摸鱼神器算不算是工具链里的一类呢?:)基于Temir,我实现了一个贪吃蛇游戏,它可以让我们在命令行界面上玩贪吃蛇游戏(temir-snake-game)。大家平时在写Bug写累的时候可以来上两局(逃。

e0bda24b8188960698383854f3cd6741.gif

现代终端用户界面框架

Pinia的作者Eduardo也在探索使用Vue构建CLI应用的实践,因为前面有了Temir的实践,并且我对这块也比较感兴趣,通过@AnthonyFu的连线,我跟Eduardo一起在推进Vue TermUI。Vue TermUI是一个基于Vue.js的终端UI框架,使用它可以帮助我们轻松构建现代终端应用程序。

a435f23822515df25ed5b4b09be7af56.png

npm交互式命令行工具

一个基于Vue TermUI实现的npm交互式命令行工具,可以让我们在命令行界面中搜索并下载各种JS的npm包,简单易用。


在命令行界面中写代码

一个基于Vue TermUI实现的Node.js 交互式解释器终端,可以帮助我们快速的调试一个包和函数。与Node.js自带的REPL不一样的是它提供了代码高亮、ESM和多行编辑的支持,同时它可以实时编码实时运行同步查看输出。


命令行界面交互式文档

我们都知道一个好的文档对项目的重要性,为了帮助大家更好的理解与上手Vue TermUI,我实现一个交互式文档,同时还做了实时编码和预览的支持。(体验地址)

加入Vue.js团队

今年的双11是非常难忘的一天!不是因为要过光棍节,也不是因为剁手了很多东西,而是加入了Vue Team。圆梦!感谢@尤大的邀请~eae8a43b47c3f49f516fde3fb25687f1.png

VueConf China 2022

今年的VueConf因为一些原因延迟到了年底,而我刚好赶上了这班车。很荣幸今年能作为演讲嘉宾参与了VueConf,一次非常宝贵的体验。感谢@sodatea的邀请~

致谢

对我来说,这是神奇的一年,我在开源社区经历和收获了很多。这里要特别感谢:

@AnthonyFu,我从他身上学到了很多东西,同时非常感谢他在一些项目给予我的建议和想法。

@Eduardo,在我和他一起推进vue-termui的旅程中,他的一些想法和建议对我很有启发。(顺便一提,他的中文很不错哈哈 👇

feb177ee2b285390de26de4260422323.png

结语

本文主要是对自己过去一年开源的回顾和总结,也希望自己的经历能给想参与开源的小伙伴参考和帮助。

如果我的文章对你有帮助,欢迎关注我一起折腾。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/274428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSSyphus:烦躁不安的烦恼设计指南。

I’m trapped at home with my website. Or maybe it’s trapped at home with me. While some are using the weird lump of time provided by lockdown to indulge in baking, dancing, painting, singing, I’m using it to play around with code.我 被自己的网站困在家里。…

你构建的代码为什么这么大?如何优化~

大家好,我是若川。我持续组织了近一年的源码共读活动,感兴趣的可以 点此扫码加我微信 lxchuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试…

用户体验需求层次_需求和用户体验

用户体验需求层次Shortly after the start of 2020 I led the development of a new website, and it went live in August. A week before the deployment, I paused development and took a step back in order to write about the project. Taking that pause, that step ba…

VMwareWorkstation设置U盘启动(或U盘使用)

最近在工作中,经常要和LINUX部署打交道,一般在生产环境部署之前需要在自己的机器上进行测试。比如使用U盘安装操作系统等。 在机器上安装了VMware Workstation9.0,运行多个测试虚拟机。理由所当然的要使用此做一些操作系统部署,…

类从未使用_如果您从未依赖在线销售,如何优化您的网站

类从未使用初学者指南 (A beginner’s guide) If you own a small business with a store front, you might have never had to rely on online sales. Maybe you’re a small clothing store or a coffee shop. You just made that website so people could find you online, …

狼书三卷终大成,狼叔亲传Node神功【留言送书】

大家好,我是若川。之前送过N次书,可以点此查看回馈粉丝,现在又和博文视点合作再次争取了几本书,具体送书规则看文末。众所周知,我在参加掘金人气作者打榜活动(可点击跳转),需要大家投…

程序详细设计之代码编写规范_我在不编写任何代码的情况下建立了一个设计策划网站

程序详细设计之代码编写规范It’s been just over a month since MakeStuffUp.Info — my first solo project as an independent Creator; was released to the world. It was not a big project or complicated in any way, it’s not even unique, but I’m thrilled where …

偷偷告诉你们一个 git 神器 tig,一般人我不告诉TA~

大家好,我是若川。众所周知,我参加了掘金创作者人气作者投票活动,最后3天投票。今天可投28票,明天32票,后天36票(结束)。投票操作流程看这里:一个普通小前端,将如何再战掘…

DAO层使用泛型的两种方式

package sanitation.dao;import java.util.List;/** * * param <T>*/public interface GenericDAO <T>{/** * 通过ID获得实体对象 * * param id实体对象的标识符 * return 该主键值对应的实体对象*/ T findById(int id);/** * 将实体对象持…

将是惊心动魄的决战~

大家好&#xff0c;我是若川。一个和大家一起学源码的普通小前端。众所周知&#xff0c;我参加了掘金人气创作者评选活动&#xff08;投票&#xff09;&#xff0c;具体操作见此文&#xff1a;一个普通小前端&#xff0c;将如何再战掘金年度创作者人气榜单~。最后再简单拉拉票吧…

图书漂流系统的设计和研究_研究在设计系统中的作用

图书漂流系统的设计和研究Having spent the past 8 months of my academic career working co-ops and internships in marketing & communication roles, my roots actually stem from arts & design. Although I would best describe myself as an early 2000s child…

西里尔字符_如何设计西里尔字母Њ(Nje),Љ(Lje),Ћ(Tshe)和Ђ(Dje)

西里尔字符This article is about how to design Cyrillic characters Њ, Љ, Ђ, and Ћ (upright caps and lowercase; italics are not covered here). They are often problematic since they are Cyrillic, but not found in the Russian alphabet, so there is no much …

学习 vuex 源码整体架构,打造属于自己的状态管理库

前言这是学习源码整体架构第五篇。整体架构这词语好像有点大&#xff0c;姑且就算是源码整体结构吧&#xff0c;主要就是学习是代码整体结构&#xff0c;不深究其他不是主线的具体函数的实现。本篇文章学习的是实际仓库的代码。其余四篇分别是&#xff1a;学习 jQuery 源码整体…

VMware workstation 8.0上安装VMware ESXI5.0

首先&#xff0c;在VMware的官网上注册&#xff0c;下载VMware ESXI的安装包vmware&#xff0d;vmvisor&#xff0d;installer&#xff0d;5.0.0&#xff0d;469512.x86_64.iso&#xff0c;它是iso文件&#xff0c;刻盘进行安装&#xff0c;安装过程中&#xff0c;会将硬盘全部…

最新ui设计趋势_10个最新且有希望的UI设计趋势

最新ui设计趋势重点 (Top highlight)Recently, I’ve spent some time observing the directions in which UI design is heading. I’ve stumbled across a few very creative, promising and inspiring trends that, in my opinion, will shape the UI design in the nearest…

学习 axios 源码整体架构,打造属于自己的请求库

前言这是学习源码整体架构系列第六篇。整体架构这词语好像有点大&#xff0c;姑且就算是源码整体结构吧&#xff0c;主要就是学习是代码整体结构&#xff0c;不深究其他不是主线的具体函数的实现。本篇文章学习的是实际仓库的代码。学习源码整体架构系列文章如下&#xff1a;1.…

404 错误页面_如何设计404错误页面,以使用户留在您的网站上

404 错误页面重点 (Top highlight)网站设计 (Website Design) There is a thin line between engaging and enraging when it comes to a site’s 404 error page. They are the most neglected of any website page. The main reason being, visitors are not supposed to end…

学习 koa 源码的整体架构,浅析koa洋葱模型原理和co原理

前言这是学习源码整体架构系列第七篇。整体架构这词语好像有点大&#xff0c;姑且就算是源码整体结构吧&#xff0c;主要就是学习是代码整体结构&#xff0c;不深究其他不是主线的具体函数的实现。本篇文章学习的是实际仓库的代码。学习源码整体架构系列文章如下&#xff1a;1.…

公网对讲机修改对讲机程序_更少的对讲机,对讲机-更多专心,专心

公网对讲机修改对讲机程序重点 (Top highlight)I often like to put a stick into the bike wheel of the UX industry as it’s strolling along feeling proud of itself. I believe — strongly — that as designers we should primarily be doers not talkers.我经常喜欢在…

若川知乎问答:2年前端经验,做的项目没什么技术含量,怎么办?

知乎问答&#xff1a;做了两年前端开发&#xff0c;平时就是拿 Vue 写写页面和组件&#xff0c;简历的项目经历应该怎么写得好看&#xff1f;以下是我的回答&#xff0c;阅读量5000&#xff0c;所以发布到公众号申明原创。题主说的2年经验做的东西没什么技术含量&#xff0c;应…