Gatsby和JAM堆栈

最近,我结合使用Gatsby,Contentful和Netlify重新发布了妻子的摄影作品集。 这组特定的工具代表了一种称为JAM堆栈(Javascript,API和标记)的令人兴奋的新Web开发架构。 在这篇文章中,我将分享我对这些新工具的个人看法,以及为什么它们一起代表静态网站世界的“圣杯”。 为什么其他静态网站生成器对我不起作用 如果您没有注意到网络以疯狂的速度移动。 几乎每天都会引入新的框架和工具,即使对于最有经验的开发人员来说也可能令人生畏。 也许您跳得太早了,后来才后悔。 或者,也许您已放弃使用新工具,并乐于接受过时的 ……我是说…… 可信赖的解决方案。 😉诚然,这是一个平衡的举动,但我相信,为了保持关联性,我们需要与Web一起发展,同时确保所选工具足够坚固耐用。 出于这些原因,我不愿在静态站点生成器上打开触发器。 我担心选错人会浪费时间,或者立即浪费。 尽管静态网站生成器已经以某种形式存在了一段时间,例如Hugo,Jekyll和Middleman,但它们大多被开发人员或精通代码的博客所使用。 尽管这些工具提供了诸如更快的速度,更好的安全性和更简单的代码之类的好处,但我认为大多数工具所欠缺的是非技术用户更新网站内容的良好解决方案。 对于大多数客户来说,要求非开发人员编辑降价文件并将其提交到GitHub根本不现实。 一些企业甚至开始填补这一空白,例如Siteleaf和Forestry,它们为使用Jekyll构建的静态站点提供CMS。 尽管这些解决方案解决了部分问题,但他们觉得我的品味太过局限了,创建一个简单博客以外的任何东西都像在一个圆孔中插入一个方形钉。…

关于工人渲染的思考

最近,我一直在思考网络工作者渲染。 如果您尚未听说过该术语,则工作进程渲染是指使用Web Worker计算页面的UI,而将主线程(我通常简称为window )仅用于修补更改和处理事件。 去年,我写了一个库worker-render,它使您可以在Web worker中运行jQuery应用程序,并使更改自动与窗口同步。 我已经与其他人(主要是通过Twitter)进行了交谈,他们也尝试了工作者渲染。 这些类型的项目(包括工人渲染项目)大多数都失败了。 最近,随着有关移动性能的新数据问世,我一直在考虑这个话题。 我还在尝试新的方法。 我计划在继续探索的同时写更多有关该主题的文章,但我首先想了解一下有关工作者渲染试图完成什么以及为什么(至今)没有流行的最初想法。 为什么要为UI使用Workers 现代JavaScript应用程序(特别是单页应用程序)需要运行大量代码才能启动。 这项工作包括生成组件树和设置事件侦听器之类的事情。 通常,成本通常是前期的,但并非总是如此,虚拟DOM框架需要做大量工作来区分其虚拟树,而数据绑定框架则需要做大量工作来生成数据更改事件。 当然,有很多方法可以降低成本,但这并不意味着它很容易,您必须勤奋工作。 随着应用程序扩展或执行诸如在每个表格单元中添加组件之类的事情,您可能会开始遇到性能问题。 许多JavaScript…

在ReasonReact中处理道具的方法

快速介绍 ReasonML是经过时间考验的22岁OCaml的崭新语法,由Facebook上的人们发起并支持。 为什么旧的语言需要新的语法? OCaml —作为ML派生的语言,是业界静态类型系统和类型推断中最好的语言之一。 安全可靠的类型系统是确保没有运行时错误的良好基础-例如undefined不是函数或无法读取undefined的属性字段 ,我们作为JavaScript开发人员都熟悉。 类型安全的编译器可以确保如果代码可以编译-它在运行时没有运行时异常-可以使您将精力集中在业务逻辑上。 新语法主要针对JavaScript开发人员,因为它与现代ES6有点相似,具有对象/数组扩展,粗箭头功能甚至对JSX语法的支持等熟悉的习惯用法。 但这也为JavaScript概念带来了一些新变化-例如代数数据类型,模式匹配等。 ReasonReact不仅是围绕ReactJS提供绑定的良好包装,它还是一个充分利用类型系统的库,还提供了类似redux的状态管理,甚至是简单的路由。 它允许您编写完全类型化的React组件-在类固醇上键入安全的prop-type。 但是与prop-types不同,类型安全性是在编译时检查的,因此再次进行-如果它可以编译,则可以工作。 一个简单的无状态组件 与ReactJs类似-组件的最简单形式只是接受某些道具的函数。 在ReasonReact中-它不能只是一个函数,因为它不能满足语言的类型系统。 相反,它是暴露一种重要方法( 渲染)的组件。…