在React组件开发时,Props是不可以修改的。但Why?如何尽可能确保在实际开发中被修改呢?继续喵

React中关于Props解释

Whether you declare a component as a function or a class, it must never modify its own props.
React is pretty flexible but it has a single strict rule:
All React components must act like pure functions with respect to their props.

结论

阅读全文 »

最近剁手了MacBook Pro16寸,正好体验了一下Time Machine同步备份到新Mac,期间也不是特别顺利,这里总结下,兴许帮到些朋友。

准备工作

  • 群晖NAS Time Machine,备份的镜像是我的原机器 MacBook Pro 2015 MacOS 10.14 Mojave
  • 目标机器 MacBook Pro 2016 macOS 10.15 Catalina
  • NAS与Mac同在局域网内

开始Time Machine同步

启动新Mac,会有提示界面,依次选择想同步的资料即可。经过大致几个小时【我这里花费4小时】的同步即结束。

阅读全文 »

项目前端技术栈对于Http请求这块经常使用Axios类库,在使用中也会遇到一些细节问题,这里就简单聊聊

Axios的定位

个人学习一个技术特别喜欢了解它的背景及使命【定位】,这样能够了解它的天花板【能做什么不能做什么】。Axios说白了只是二次封装了浏览器的XMLHttpRequests及Node的Request,提供了更为便捷的HTTP使用方式,仅此而已
了解了背景,来说几个常见的问题

Axios官方介绍

阅读全文 »

最近在开发公司的UI组件库,目的是自造轮子,统一公司产品UI,及提升开发效率,不必从零做起。愿景虽美,仍有现实问题,其中就有这样一个点。

库总是需要更新,每次新版本如何发布,目前的操作是每次修改了代码后,提交,同时手动修改版本号,然后执行发布命令,但这样做问题很多,如下。

存在问题

  1. 每次修改点可能是个fix,也可能是个feat,又或者修改伴随着breaking change,单从commit信息上,提取不出任何的关键信息,同时,对外没有任何文档输出,假如项目中需要升级包,面对的只是一个个版本号,这样升级起来未免有些提心吊胆。
  2. 当前版本号的更新全依赖于人工输入,那么对于版本号的升级就必然出现不规范,不一致的情况,比如一个小的样式BUG的修改,一个新手可能就会直接升级大版本号。这样长此以往就必出问题,更别说手动的输入版本号本身也是个重复的体力劳动。
  3. 不只是所谓的UI组件库,即使是本身的业务项目,commit message应该是个很好的方式,去描述此次提交的内容,但当前Team中这一环很弱,并且内容简单随意,毫无实际意义。
  4. 因为commit的不规范,每次我们提交代码都会出发构建发版,但是实际上,假如只是doc修改,并不一定需要去触发构建发版,而假如想做到能够区分每次commit,那么就需要有规范格式化的commit存在。

以上四点问题支撑我思考,如何利用工具去改善。查阅了相关资料后,发现可以利用成熟化工具解决。

Angular项目参考-优秀样例

阅读全文 »

之前Team一直以Git Submodule的形式共享前端基础模块资源,但存在弊端,于是趁着周末研究下Nexus npm,将前端资源切换到npm形式进行维护管理

Git Submodule的弊端

首先说下使用GitSubmosule形式共享前端包的弊端。

  1. 版本管理依赖于commitId,submodule虽然也有分支的概念,但本质依赖于commitID,假如本身的文件存储的就是某个仓库及某次commit。假如在MR代码时,版本不一致,单从这个hash值上,并不知道版本之间,谁是新的。相较npm package的大小版本号就更为浅显易懂些。

  2. 子模块的管理方式是将模块的代码全盘拉下,比如UT也会拉下,其实是多余的。

  3. 子模块代码在项目中非只读,容易被修改,我希望的是代码保护,只有只读权限

阅读全文 »
0%