0%

系统,扎实的 javascript 语言基础是一个优秀的前端工程师必须具备的。在看了一些关于 call,apply,bind 的文章后,我还是打算写下这篇总结,原因有几个。首先,在如今 ES6 大行其道的今天,很多文章中讲述的它们的应用场景其实用 ES6 可以更优雅的解决,但是基本上·没有文章会去提 ES6 的解法。再则,讲它们的实现原理的文章其实不少,但是或多或少实现的有些不够完美,本文将把它们通过代码一一比较完美的实现,让它们不再神秘。不谦虚的说,关于 call,apply,bind 的知识,看这一篇文章就够了。

阅读全文 »

浏览器 HTTP 缓存是一种常见的 web 性能优化的手段,也是在前端面试中经常被考察的一个知识点。本文通过配置 koa2 服务器,在实践中带你探究浏览器的 HTTP 缓存机制。

阅读全文 »

9102 年了,前端工程化发展在 nodejs 的基础上已经发展的非常完善了,各种前端构建辅助工具层出不穷。ES6 编译器 babel,css 辅助工具 postcss / sass / less,代码风格检测工具 eslint / prettier / stylelint,git 辅助工具 husky / lint-staged / commitizen / commitlint,自动化构建工具 webpack / gulp / grunt,测试工具 jest / mocha 等等。

这么多开发辅助工具每次写项目都去配置一遍那也太浪费时间了,自己维护一套模板有得时不时去更新。比较方便的配置开发环境还是使用 cli 或者一些热门的 bolierplate。本篇文章将以 react 官方维护的 cli 工具 create-react-app (简称 cra)为基础,以不 eject 的方式去配置 ant design,以及一些 cra 并没有内置的辅助工具。

阅读全文 »

这几天电脑总是蓝屏,有时候重启时还显示找不到系统,然后多重启几次又正常进入系统。昨天电脑蓝屏重启不下十次,忍无可忍,无须再忍,只好重装系统,换上了最新的 win10 1903。1903 在用户界面上做了挺多优化,窗口阴影,浅色主题,磨砂锁屏等,还有 windows 沙盒等新玩意。

但是换了之后还是会蓝屏重启,说明是硬件的问题。怀疑是主板有问题,平时用的是笔记本自带的键盘,很容易进灰,有时候边看视频边吃饭的时候可能进了些菜水什么的。今天把电脑后盖拆了之后清了清灰,用吹风机对着自带键盘吹了半天热风,再次重新装了系统。一天下来,啥也没干,装各种软件,配环境,用到现在也没蓝屏,不知道能持续几天。这不,现在要重新配下 git,顺便写篇文章记录一下,省的以后重新配的时候还要到处查资料。

阅读全文 »

自从我深入了解了 react hooks,被其简洁的编写方式和强大的扩展性深深吸引,然后我就迫不及待地想把它应用到实际项目中。

使用下来发现,真香!但是坑也不少。react hooks 使用起来代码确实简洁不少,甚至说有点黑魔法的味道。如果使用者不怎么了解 hooks 实现原理和函数组件的渲染过程,很容易导致使用 hooks 编写组件时出现一些很离奇的 bug,所以使用好 hooks 还是需要一定的学习成本。

这篇文章主要讨论 react 中类组件和函数组件的一些区别。

阅读全文 »

新标签页

虽然有点标题党的嫌疑,但是内容绝对是满满的的干货。很多扩展功能比较单一,直接用一张图就能很清楚说明它的用途啦。出于篇幅的限制,我在这里会重点介绍一些我个人比较用得上的一些扩展。因为平时前端开发的比较多,所以偏向前端程序员的扩展可能会比较多一些。

我本人对 chrome 扩展比较挑,一般有同类型的扩展我会选择维护比较积极的,使用人数更多的。像有些 3 年都没更新过的扩展我基本上是不会用的,除非这个扩展本身功能比较简单,不需要更新。我平时有事没事就会去 chrome 扩展市场去逛逛,所以积累的优秀扩展比较多。一大波图片即将袭来, 请在 wifi 条件下或者流量充足的情况下阅读。

阅读全文 »

其实爬虫是一个对计算机综合能力要求比较高的技术活。

首先是要对网络协议尤其是 http 协议有基本的了解, 能够分析网站的数据请求响应。学会使用一些工具,简单的情况使用 chrome devtools 的 network 面板就够了。我一般还会配合 postman 或者 charles 来分析,更复杂的情况可能举要使用专业的抓包工具比如 wireshark 了。你对一个网站了解的越深,越容易想出简单的方式来爬取你想获取的信息。

除了要了解一些计算机网络的知识,你还需要具备一定的字符串处理能力,具体来说就是正则表达式玩的溜,其实正则表达式一般的使用场景下用不到很多高级知识,比较常用的有点小复杂的就是分组,非贪婪匹配等。俗话说,学好正则表达式,处理字符串都不怕 🤣。

还有就是掌握一些反爬虫技巧,写爬虫你可能会碰到各种各样的问题,但是不要怕,再复杂的 12306 都有人能够爬,还有什么是能难到我们的。常见的爬虫碰到的问题比如服务器会检查 cookies, 检查 host 和 referer 头,表单中有隐藏字段,验证码,访问频率限制,需要代理, spa 网站等等。其实啊,绝大多数爬虫碰到的问题最终都可以通过操纵浏览器爬取的。

这篇使用 nodejs 写爬虫系列第二篇。实战一个小爬虫,抓取 github 热门项目。想要达到目标:

  1. 学会从网页源代码中提取数据这种最基本的爬虫
  2. 使用 json 文件保存抓取的数据
  3. 熟悉我上一篇介绍的一些模块
  4. 学会 node 中怎样处理用户输入
阅读全文 »

这篇文章主要记录一下平时自己实践得到的, 博客中学习的以及在一些项目源码中看到的 javascript 技巧。有些东西可以说是奇淫技巧,有些可能是 ES6+ 中一些比较具有实用性的新语法。

阅读全文 »

最近用 react native 做了一个移动端跨平台 App。Learn once, write everywhere 确实不是吹的。

本文主要由以下几部分构成:

  1. 为什么我选择了 react native
  2. react natve 开发 App 体验
  3. react native 的有哪些坑
  4. 对未来移动跨平台开发的展望
阅读全文 »