前端桃园周刊第五期

文章 1. Thinking in React Hooks 当从 React 类组件切换到函数组件 + hook 时,基本的思维模式发生了什么变化。 2. Ant Design 1.0 背后的故事:把艺术变成技术 我以前一直不喜欢读历史,今年了解吴军老师比较多,听他的硅谷来信,看他的书:《浪潮之巅》、《文明之光》才决定历史背景原来那么重要,了解历史你会发现现在很多的东西都是必然会出现的。 Ant Desgin 这么伟大的东西,了解一个产品背后的故事,我觉得还是很有必要的,看看为什么别人能做出伟大的东西,而我们不能。 3. 前端API层架构,也许你做得还不够 架构设计是一条永远走不完的路,没有最好,只有更好。这个道理适用于软件设计的各个场景,前端API 层的设计也不例外,如果您觉得在调用接口时还存在诸多槽点,那就说明您的接口层架构还待优化。作者以 vue + axios 为例,为大家梳理下我的一些经历和设想。 4. 你的 Mac 用对了吗?推荐一些 Mac 上比较好用的软件 这些 mac 软件都挺好用的,强烈推荐。 5. 再谈编程范式—程序语言背后的思想 详细讲述了命令式、过程式、说明式、面向对象、函数式、泛型编程各个编程范式的特性。 6. 少讲大道理,多解决小问题 二爷这篇文章以很多亲身体验的例子来阐述了多做事,少废话的道理,非常值得一读。 挖宝 1. vscode 字体 fira code 一款为程序员专属的字体。 2. 大四学生开源文言文编程语言 这一项目并不是简单的将程序中的英文字符换成了中文,而是利用 NLP 的一些技术,将文言文程序语法转换到 JavaScript 或 Python 运行,有一定的技术难度。 如果读者想快速试一试,你也可以玩一玩在线 IDE,上面有很多预定义的函数。即使在手机上,我们也能编辑并运行「文言文代码」。 3. lutaonan.com 一款很简洁的博客,文章阅读页的样式准备参考他的。 4. 方凳雅集 方凳雅集是阿里B系前端技术团队的专属公众号,内容来自1688、阿里巴巴国际站、零售通、AliExpress、企业金融、考拉等多个BU的前端团队,涵盖阿里原创技术、精彩翻译和公司文化、职业成长等内容。 最近关注到的质量比较高的前端公众号了,不过不太适合初级工程师,文章话题一般比较高大上,都是他们团队内部的一些解决方案,而不是基础知识。 5. 第十四届D2前端技术论坛「创心」 12 月 14 日,第十四届 D2 前端技术论坛在杭州圆满举办。来自全国各地的近千名开发者齐聚杭州,聆听 3 大会场、来自 24 位海内外嘉宾的 21 个主题分享。...

1 min · 85 words · 桃翁

前端桃园周刊第六期

小知识 伪类before/after中的图片大小是不是不能设置的? 文章 编写组件的 10 个原则 一篇英文文章,之前面试被面到过设计组件的时候要注意哪些,当时我大脑空白,根本答不出来,看了这篇文章之后,也许知道怎么答了。 深入解析ES Module(二):彻底禁用default export 文章介绍了 export default object 这种方式所带来的问题,主要是在转换的时候不兼容 cjs,当然这篇文章也有助于更深刻的理解 ES Module。 「圣诞特辑」纯前端实现人脸识别自动佩戴圣诞帽 通过使用 TensorFlow.js 来进行人脸识别,然后自动佩戴圣诞帽,我最近也在学习机器学习相关的,当然也绕不开 TensorFlow.js ,学完课程之后再来看这篇文章。 那些你用错了的 React 生命周期 这篇文章的中心思想跟我之前在 React 官方博客里面看到那篇「你也许不需要派生 State」基本类似,主要是 componentWillReceiveProps 和getDerivedStateFromProps 这两个声明周期可能会写成反模式。 独家 | 阿里张勇湖畔分享:领导者如何“落子无悔” 张勇的演讲全文,看到很多大佬推荐这篇文章,先 mark 一波。

1 min · 40 words · 桃翁

前端桃园周刊第四期

一句话知识 npm v packageName versions npm v packageName versions 查看包的所有版本,不加s 获取新版本。用途,安装了包但是 package.json 里面没有包,需要手动填入的时候。 typeof null 为什么返回 “object”? 不同的对象在底层都表示为二进制,在 JavaScript 中二进制前三位都为 0 的话会被判 断为 object 类型,null 的二进制表示是全 0,自然前三位也是 0,所以执行 typeof 时会返回“object”。 in 和 hasOwnProperty 区别 in 操作符会检查属性是否在对象及其 [[Prototype]] 原型链中。相比之下, hasOwnProperty(..) 只会检查属性是否在 myObject 对象中,不会检查 [[Prototype]] 链。 for in 和 for of 的区别 for in 用于对象的遍历,会遍历原型上可以枚举的属性 for of 用于遍历可迭代的对象,比如数组,因为数组里面是有迭代器的,凡是有迭代器的对象都可以用 for of 来遍历 对 constructor 的误解 对象的 constructor 实际上不是对象创建的时候有的,而是通过委托到 prototype 上找的。 function Foo() { /* ....

1 min · 151 words · 桃翁

根据 React 历史来聊如何理解虚拟 DOM

最近我发现很多面试题里面都有「如何理解虚拟 DOM」这个题,我觉得这个题应该没有想象中那么好答,因为很多人没有真正理解虚拟 DOM 它的价值所在,我这篇从虚拟 DOM 的诞生过程来引出它的价值以及历史地位,帮助你深入的理解它。 什么是虚拟DOM 本质上是 JavaScript 对象,这个对象就是更加轻量级的对 DOM 的描述。 对,就是这么简单! 就是一个复杂一点的对象而已,没什么好说的,重点是为什么要有这个东西,以及有了这个描述有什么好处才是我们今天要介绍的内容。 为什么要有虚拟DOM 再谈为什么要用虚拟 DOM 之前,先来聊一聊 React 是怎么诞生的,毕竟在了解历史背景,再去思考他的诞生,就知道是必然会出现的。 再查了很多关于 React 的历史相关的文章,这篇文章我感觉比较值得令我信服:React 是怎样炼成的。 众所周知,Facebook 是 PHP 大户,所以 React 最开始的灵感就来至于 PHP。 字符串拼接时代 - 2004 在 2004 年这个时候,大家都还在用 PHP 的字符串拼接来开发网站: $str = '<ul>'; foreach ($talks as $talk) { $str += '<li>' . $talk->name . '</li>'; } $str += '</ul>'; 这种方式代码写出来不好看不说,还容易造成 XSS 等安全问题。 应对方法是对用户的任何输入都进行转义(Escape)。但是如果对字符串进行多次转义,那么反转义的次数也必须是相同的,否则会无法得到原内容。如果又不小心把 HTML 标签(Markup)给转义了,那么 HTML 标签会直接显示给用户,从而导致很差的用户体验。 XHP 时代 - 2010 到了 2010 年,为了更加高效的编码,同时也避免转义 HTML 标签的错误,Facebook 开发了 XHP 。XHP 是对 PHP 的语法拓展,它允许开发者直接在 PHP 中使用 HTML 标签,而不再使用字符串。...

3 min · 550 words · 桃翁