前端成果回顾

总结一下,这几年在工作中一些前端相关的产出,列举的都是些独立于项目外的平台和工具;

1、协议配置平台

背景

前端开发中,很多协议、免责声明、活动规则这种纯文本页面,开发比较浪费时间;特别是有的协议十几页,前端光复制文本,添加html标签和样式就要花费好多时间;后期维护的时候,如果协议整体变动较大,基本又要重新做一遍;

这种纯文本的文档,完全可以自动化,就试着搭建了这么一个平台;

描述

一个上传word文档得到一个页面url的平台;整个平台从需求到开发,都是我一个人处理;

平台环境、技术及框架:windows server 2008、MySql、Express(用Node做后端)、Python(word转html以及上传到云存储的脚本)、前端;

平台功能:

  • 上传一个格式化好的word文档,得到一个线上url,在项目中可以直接使用;同时支持jsonp方式获取页面的html结构;
  • 协议分为共享和私有,一些公共协议,如果别人已经传过了,可以直接拿来用;
  • 协议有变动的时候,找到该协议,重新传一下文档就可以了;
  • 协议页面还支持一些动态参数的插入,可通过url往页面传参,动态显示页面上的一些内容,比如姓名、性别、称谓等;

2、jrv-vue

一个基于Vue2.x的PC端组件库,用于搭建中台系统;

前期搭建是我一个人负责的,后来同事加入,我们两个一块儿搭起了第一版;

后续扩充和迭代、以及官网的建设主要是他负责了;

总的来看,直到现在的版本,我的贡献量40%吧;

访问地址:http://findesign.jd.comhttp://www.npmjs.com/package/jrv-vue

3、一套移动端组件

背景

业务做的多了,很多重复的组件都要提取出来;服务器支持 comb 方式引用资源,比如:http://a.com/js/??tools.js,com.js,page.js;

描述

一套移动端组件,包括:

单一组件:数字键盘、支付键盘、全键盘、日期选择控件、身份证有效期选择控件、loading、toast、带按钮的弹框、自定义文本框、地址联动选择、发送短信验证码弹框;

工具组件:卡号格式化,倒计时

复合组件:密码框-长密短密切换;

  • 自定义文本框:是搭配键盘使用的,加入了模拟光标以及点击定位光标的功能;
  • toast:自动撑开,最大宽度为屏幕宽度的80%,自动折行(就这么一个简单的功能,当时的很多库都不支持);
  • 带按钮的弹框支持:带一个按钮的普通消息提示框、带两个按钮的确认框、带三个按钮的特殊操作框、带一个吸底按钮的消息提示框、带两个吸底按钮的确认框这五种常用样式;
  • 地址联动选择框,支持省市区的三、四级联动,而且将请求过程也封装到了组件中,后来这个单独摘出来申请了专利… 需要调用者提供:每个级别的接口地址、请求参数格式化回调函数、返回数据格式化回调函数;
  • 卡号格式化:4位加一个空格

4、单组件 – 键盘

支付H5中经常会用到键盘,所以将键盘作为一个独立的组件封装起来;和其他普通组件相比,该组件做了两个优化:

  • 该组件内部用em这个相对单位,使用者如果想控制整体大小,只需要修改控件最外层元素的字号即可;
  • 使用时,只需引入一个js接口,css动态加载,如果css未加载完成调用了组件,会将任务加入队列,等css加载完成再做处理;

该组件申请了专利,就不详细展开了;

5、单组件 – 地址联动选择框

一个将请求过程也封装在内部的组件,调用者通过三个参数控制请求:地域数据请求接口、请求之前的参数格式化回调函数、请求之后的数据格式化回调函数;

该组件也申请了专利,就不详细展开了;

6、自动发布脚本

背景

2015、16年的时候,负责移动端页面开发,当时移动端还没什么大项目,一个项目里页面不是很多,也没有要求说用单页;而且当时的运营活动要多一些,基本都是一个或两个页面的活动页;

描述

demo环境:一个静态资源服务器,可以将html、js、css、图片等传上去,内网可以访问到,方便页面效果的内部预览和测试;


测试环境:一个静态资源服务器,路径和线上资源地址一致,可以通过配置 hosts 访问该环境,这样代码不需要修改引用地址,只需切换 hosts 就能达到测试的目的;

每次将代码发布到demo/测试环境时,一般是先用 gulp 构建 css 和 js,然后用 ftp 传到demo/测试服务器;

当时团队里的构建命令已经完善,但是没有上传自动化的任务;每次部署需要两步,太麻烦了,所以我写了一个 gulp 的任务,将打包和通过 ftp 上传完全自动化,根据配置,可以选择压缩/不压缩上传到 demo/测试上;

7、rem不同基数以及px单位之间的转换工具

背景

最初的移动端项目,大都是直接用px,搭配zoom进行简单的适配;
后来,开始大量使用rem这个相对单位,适配工作也越来越好处理;
由于刚开始没有统一要求,大家用的rem基数有10px、20px、50px、100px,陆续也都积累了一些组件和解决方案;
再后来,一些组件和解决方案都已经成熟,其他人想拿来用,但如果rem基数不统一,就非常恶心;

描述

一个基于gulp的工具,逻辑也非常简单,根据不同的基数来进行单位转换;获取到css文件内容,正则匹配出数字,对数字进行计算转换之后,重新设置到内容中;

8、一个接口文档管理平台

一个基于 apiDoc 的接口文档管理平台,还是和我那个同事一块儿开发的,不过这个项目主要是他设计的,我主要是开发了一部分页面,还有提供一些建议啥的;

9、seajs+backbone

2015年下半年开始的某项目,需要前后端一块儿开发,前端负责页面效果,后端负责业务逻辑,且需要单页效果;最终是通过改造backbone实现了;当时的环境下,差不多是最适合的解决方案;

10、NPM

calendar-helperformat-tools

calendar-helper:是一个日历数据生成工具;支持周一到周日、周日到周六两种格式的数据格式,可以同时生成多个连续月份的数据(后续版本准备去掉该功能,只保留生成一个月份的功能);

format-tools:几个字符串和日期格式化方法;

如果这篇文章对你有用,可以点击下面的按钮告诉我

0

发表回复