愿你的指下有代码,眼里有星辰 | 掘金年度征文
2019年和以往的每一年都不一样,这一年,我离开了熟悉的南京,来到了北京的工作,成为了一名“进城务工人员”。每次从南京回北京的时候,我都笑称自己又要去进城务工了。 从一个熟悉的地方来到陌生的城市,难免有一些担心,担心不习惯北京的生活,担心不喜欢北京的天气,事实证明这些担心都是多…
不容错过的 Babel7 知识
对 Babel 的配置项的作用不那么了解,是否会影响日常开发呢?老实说,大多情况下没有特别大的影响(毕竟有搜索引擎)。 不过呢,还是想更进一步了解下,于是最近认真阅读了 Babel 的文档,外加不断编译验证,输出了本篇文章,为了更好的阅读体验,修修改改,最终算是以我个人比较喜欢…
90行代码构建属于你的React
本文中的实现借助了 snabbdom ,因此如果你的关注点是虚拟DOM的实现或是将虚拟DOM渲染到浏览器的底层实现,本篇文章中并不会涉及到。有些人可能对此感动失望,但是,一口吃不成一个胖子,我们需要一步一步来。 当我学习 React 的时候,我觉得它所做的一切都是魔术,然后我就…
声明式UI框架在类小程序运行的原理
近年新出的UI框架,包括React,Flutter, SwiftUI等在内都采用了声明式的方法构建UI,其中基于React的RN,Flutter都是多端框架,可以一套代码多端复用。但是在国内“端”还有一个小程序,所以在国内的跨端,必须要兼顾到小程序。 本文将探讨一种将声明式UI…
9个项目助你在2020年成为前端大神!
DEV的年度热文,读完觉得不错,所以翻译出来供大家参考,个人水平有限,文中可能会有一些翻译错误,可以在评论区指正。 本篇文章一共涉及了9个流行的框架/库,没有具体的介绍使用方法,而是给了一些非常棒的实战教程。 初学者(也许一些有经验的开发者也是一样)在读完官方文档,想写一个项目…
你想知道的关于 Refs 的知识都在这了
Refs 提供了一种方式,允许我们访问 DOM 节点或在 render 方法中创建的 React 元素。 管理焦点,文本选择或媒体播放。 触发强制动画。 集成第三方 DOM 库。 1. createRef createRef 是 React16.3 版本中引入的。 使用 Rea…
【React系列】动手实现一个react-redux
react-redux 是 redux 官方 React 绑定库。它帮助我们连接UI层和数据层。本文目的不是介绍 react-redux 的使用,而是要动手实现一个简易的 react-redux,希望能够对你有所帮助。 首先思考一下,倘若不使用 react-redux,我们的 …
【React系列】从零开始实现Redux
本篇文章会从零开始编写 Redux,如果你对 Redux 的使用和源码已经非常熟悉,那么你只需要粗略浏览即可,如果你还不太清楚,那么跟着本篇文章一起来实现你的 Redux 吧。知其然,知其所以然。 本篇文章对应的代码在: https://github.com/YvetteLau…
Array.from() 五个超好用的用途
因水平有限,文中部分翻译可能不够准确,如果你有更好的想法,欢迎在评论区指出。 任何一种编程语言都具有超出基本用法的功能,它得益于成功的设计和试图去解决广泛问题。 JavaScript 中有一个这样的函数: Array.from:允许在 JavaScript 集合(如: 数组、类…
你知道JS全局变量是如何工作的吗?
在这篇博文中,我们将研究 JavaScript 的全局变量是如何工作的。如:scripts的范围,所谓的全局对象等等。 变量的词法作用域(简称:作用域)是可以访问它的程序的区域。JavaScript 的作用域是静态的(它们在运行时不会改变)并且它们可以嵌套 - 例如: if 语…
可靠React组件设计的7个准则之终篇
本篇文章重点阐述 可测试和富有意义。因水平有限,文中部分翻译可能不够准确,如果你有更好的想法,欢迎在评论区指出。 尽管 组合、复用 和 纯组件 三个准则在掘金平台似乎不太受欢迎,不过本着有始有终的原则,当然我个人始终还是觉得此篇文章非常优质,还是坚持翻译完了。本篇是最后 可靠R…
可靠React组件设计的7个准则之纯组件
原文的篇幅非常长,不过内容太过于吸引我,还是忍不住要翻译出来。此篇文章对编写可重用和可维护的React组件非常有帮助。但因为篇幅实在太长,我对文章进行了分割,本篇文章重点阐述 纯组件和几乎纯组件 。因水平有限,文中部分翻译可能不够准确,如果你有更好的想法,欢迎在评论区指出。 在…
可靠React组件设计的7个准则之组合和复用
原文的篇幅非常长,不过内容太过于吸引我,还是忍不住要翻译出来。此篇文章对编写可重用和可维护的React组件非常有帮助。但因为篇幅实在太长,我对文章进行了分割,本篇文章重点阐述 组合和复用。因水平有限,文中部分翻译可能不够准确,如果你有更好的想法,欢迎在评论区指出。 组合(com…
可靠React组件设计的7个准则之封装
原文的篇幅非常长,不过内容太过于吸引我,还是忍不住要翻译出来。此篇文章对编写可重用和可维护的React组件非常有帮助。但因为篇幅实在太长,我对文章进行了分割,本篇文章重点阐述 封装。因本人水平有限,文中部分翻译可能不够准确,如果您有更好的想法,欢迎在评论区指出。 耦合是决定组件…
可靠React组件设计的7个准则之SRP
原文的篇幅非常长,不过内容太过于吸引我,还是忍不住要翻译出来。此篇文章对编写可重用和可维护的React组件非常有帮助。但因为篇幅实在太长,我不得不进行了分割,本篇文章重点阐述 SRP,即单一职责原则。 我喜欢React组件式开发方式。你可以将复杂的用户界面分割为一个个组件,利用…
深入理解全能的 Reducer
这两段代码在功能上是等价的,都是数组中所有数字的总和,但是它们之间有一些理念差异。让我们先研究一下 reducer,因为它们功能强大,而且在编程中很重要。有成百上千篇关于 reducer 的文章,最后我会链接我喜欢的文章。 要理解 reducer 的第一点也是最重要的一点是它永…
【译】Proxy及其优势
通常,当谈到JavaScript语言时,我们讨论的是ES6标准提供的新特性,本文也不例外。 我们将讨论JavaScript代理以及它们的作用,但在我们深入研究之前,我们先来看一下Proxy的定义是什么。 MDN上的定义是:代理对象是用于定义基本操作的自定义行为(例如,属性查找,…
【中高级前端必备】手摸手教你撸一个脚手架
vue-cli, create-react-app、react-native-cli 等都是非常优秀的脚手架,通过脚手架,我们可以快速初始化一个项目,无需自己从零开始一步步配置,有效提升开发体验。尽管这些脚手架非常优秀,但是未必是符合我们的实际应用的,我们可以定制一个属于自己的…
【Step-By-Step】高频面试题深入解析 / 周刊07
1. 实现一个 JSON.stringify JSON.stringify([, replacer [, space]) 方法是将一个JavaScript值(对象或者数组)转换为一个 JSON字符串。此处模拟实现,不考虑可选的第二个参数 replacer 和第三个参数 spac…
【Step-By-Step】高频面试题深入解析 / 周刊06
本周是继承专题,在开始之前,需要先了解构造函数、原型和原型链的相关知识。 构造函数和普通函数的区别仅在于调用它们的方式不同,任何函数,只要通过 new 操作符来调用,那它就可以作为构造函数;任何函数,如果不通过 new 操作符来调用,那么它就是一个普通函数。 实例拥有 cons…