团队规范系列之 git 规范

最近一周的工作重心就是在梳理团队规范,在写的过程也查缺补漏了不少知识,剔除掉关于公司场景的部分就有了这一系列的文章,预计写四部分: git规范 工程规范 用户体验规范 命名规范 Git 规范 Git 作为现在最流行的分布式管理工具,基本上是每个团队的必备,下面就从分支和提交这两部分展开 什么是分支 ...

团队规范系列之 git 规范 - 图片 1
团队规范系列之 git 规范 - 图片 2
团队规范系列之 git 规范 - 图片 3
Webpack 插件入门

Webpack 插件入门

webpack 插件入门 bg 最近写了一个移动端项目,不过每次 build 的时候还需要手动上传服务器感觉很不方便,毕竟每次删除文件夹然后拖拽上传的过程太重复了,本着不重复造轮子的原则去 Github 翻了一下,发现 Upload上传插件还是蛮多的,不过距离自己的要求还是有些差异,很多插件只是只是...

如何选择合适的公司?

如何选择合适的公司?

背景图片 虽然金三银四早也过去,不过坦率的说好多公司招聘的需求量依然很大,再加上自己这段时间也在关注,这块所以就简单聊聊从选择公司到入职的一系列问题 这里不涉及如何写简历以及如何回答面试的问题,后面如果有时间会考虑新开一个篇幅来说 求职渠道 首先如果自己早已有心仪的目标那可以跳过这一步,直接从脉脉或...

初探 node 接口开发

初探 node 接口开发

接口请求与其它资源请求没有什么不同,都是借助 http 协议返回对应的资源,这篇文章简单介绍一下 node 开发接口以及如何管理多个接口情况和接口风格。 标题关联了 node,主要因为 node 开启一个服务器是很简单,而且语法基本相同没有太多负担,这篇文章主要讲解思路,换算到其它语言也是可以的。 ...

ios屏幕适配

ios屏幕适配

这篇文章算是迟来的总结,最近做了一个 h5 项目内嵌到 app 页面内联,默认情况下 app 那边不会做任何处理,也就是顶部和底部需要额外处理一下 bg 做法 默认情况下 ios 的顶部状态栏是20px,如果存在刘海则是44px,当然实际开发中也不需要使用 js 来进行判断,因为 ios11 之后新...

文字高亮

文字高亮

bg 如上图,可能在搜索之类的时候需要将搜索内容进行高亮,下面聊聊小程序和 web 上如何实现。 web 上做法 可以通过正则表达式/(高亮的文字)/来实现 这里实现比较简单,稍微注意一下replaceapi 即可,它还可以接收一个函数作为参数,具体内容这里不做讲解了只简单实现一下。 小程序做法 不...

深浅拷贝和extend

前言 深浅拷贝和 extend 是项目中常用的工具类函数,今天就动手实现一下 下面会重复这几个基础函数,为了简洁下面不会出现相关定义 浅拷贝用法 从上面例子可以看到,当两个对象出现相同字段的时候,后者会覆盖前者,而不会进行深层次的覆盖。 由此可以得到一个结论:浅拷贝可以简单理解为只拷贝对象的一层属性...

使用 canvas 实现贪吃蛇

童年使用的诺基亚基本上都会搭载这款小游戏,最近心血来潮想用 canvas 来实现这个游戏就有了这篇文章,下面讲解一下实现的思路,本文的最终代码已经放到了codesandbox上。 当然实现的方式并不止 canvas 这一种,还可以使用 html + css 的形式,这里不讨论优劣取舍,让我们快速开始...

使用 canvas 实现贪吃蛇 - 图片 1
使用 canvas 实现贪吃蛇 - 图片 2
使用 canvas 实现贪吃蛇 - 图片 3

基于History实现前端路由

History是 HTML5 新增的标准,对比hash它的展示更加优雅,但低版本 ie 还有兼容问题。 首先History表示窗口浏览历史,可以通过pushState方法添加历史记录,以及通过go方法来实现跳转,还有popstate事件可以监听到记录变更。 下面就来分析实现一个History路由的基...

基于hash实现前端路由

前端路由分为两部分,hash 路由和 History 路由,例如我们常用的 vue-roter 就包含这两部分,这里并不探讨框架是如何进行封装的,而是使用原生的 api 来实现这样一个功能。 预计分为两部分,这里先介绍 hash 路由,实现基本的接受响应和前进后退(为了方便,下面代码不做任何兼容处理...

GitHubActions构建定时任务

写这篇文章是无意之间看到阮一峰老师发布的GitHub Actions 入门教程里面介绍了 GitHub Actions 的一些概念,碰巧我之前用爬虫 + vuePress 构件了一个typescript 的中文手册,下面就以每天定时构建这个应用为背景介绍如何使用 GitHub Actions 完成下...

GitHubActions构建定时任务 - 图片 1
GitHubActions构建定时任务 - 图片 2
GitHubActions构建定时任务 - 图片 3

优雅处理图片异常

前言 不同浏览器对加载失败图片的图标展示不统一,所以给定一个默认的失败图片就尤为重要。 正好前几天处理了一下公司首页图片 error 默认图片的问题,就趁着记忆没有消失分享一下这篇文章。 error img 标签有一个 error 事件,通过它我们可以捕捉到异常,使用起来也很简单 全局 上面的方法没...

global对象获取

global 在开发中经常经常使用,例如下面一段代码调用的就是 global 内置的对象 这里的 Math 对象就是 global 内置的,在浏览器环境下我们可以通过window.Math.min显示调用,而在 node 环境下我们则要通过global.Math.min来调用,在实际中我们不会通过w...

从form表单来看策略模式

前言 之前写程序的时候为了快速开发写了许多if、else if的语句,当时开发倒是挺爽的,事后维护的时候想骂人,为了不坑自己和其他小伙伴,下面从零开始用一个基础表单 + 策略模式清除if分支语句 上面是一个很常见的表单元素,里面有账号和密码以及手机号,我们需要在提交之前对他进行一些校验,这里默认的规...

IntersectionObserver实现图片懒加载

IntersectionObserver实现图片懒加载

传统的图片懒加载实现思路是判断图片的 top 区域是否小于父级区域,且自身高度加上 top 大于 0, 例如 不过这样写的话有一个问题就是我们监听的事件会重复多次触发,所以我们还需要写一个节流或者防抖函数,不过使用IntersectionObserver我们可以轻松实现,首先看下兼容性 Inters...