秒速赛车技巧-秒速赛车规律_官网-秒速赛车走势图
当前位置:主页 > 秒速赛车规律 > 正文

秒速赛车的技巧8码Stimulus 10:一个针对你已有的

  我们的工具在小组内已变得非常流行,特别是使用ComponentKit的工程师。在大型应用中,这使得工程师查看修改结果的速度提升了20倍。高性能、与现有开发工具和框架的紧密结合已经让原生代码的加载成了在Instagram和Facebook的iOS工程师平时工作流程中的重要一环。

  Stimulus 1.0:一个针对你已有的HTML的JavaScript框架

  Stimulus 1.0:一个针对你已有的HTML的JavaScript框架

  GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

  亲爱的读者:我们最近添加了一些个人消息定制功能,您只需选择感兴趣的技术主题,即可获取重要资讯的邮件和网页通知。

  这是一种构建庞大的一体化应用的方式。Basecamp运行在多个平台上,包括原生移动Apps,只有单独一套使用Ruby on Rails创建的controllers、views和models。拥有一套唯一的共享的可以在一个地方更新的接口,是一个小型团队能够支撑多个平台的关键。

  这使得我们能够像过去一样凝聚生产力。这可以让我们回到过去那种高生产力的时期,那时一个程序员无需陷入层层间接的或分布式的系统,就可以完成大量任务进度。那时候,还不是每个人都认为,服务端就是给客户端JS喂JSON的。

  在我介绍新的JavaScript框架Stimulus之前,让我先大致介绍一下Turbolinks的细节。

  Turbolinks是从一种叫做pjax的方案简化而来,托管在GitHub上。基本的概念保持相同。全页刷新通常感觉起来慢的主要原因并不是因为浏览器需要处理服务器发送的一堆HTML。浏览器都非常棒,处理这种事情都非常快。在大多数情况下,HTML负载比JSON负载大,对于页面响应速度也并没有太大的影响(特别是启用gzip压缩的情况下)。全页刷新感觉慢的主要原因是CSS和JavaScript必须重新初始化并重新应用到页面。无论这些文件本身是否被缓存。秒速赛车的技巧8码如果你有相当多数量的CSS和JavaScript,全页刷新就会非常慢。

  Stimulus将那些模式中最好的部分糅合到一个适度的小型框架中,只围绕三个主要概念:Controllers、actions和targets。

  当你查看它所展示的HTML时,它看起来是一种渐进的增强。因此,你可以查看一个template,然后就知道哪些行为发生在它上面。这里是一个例子:

  你可以看到这些内容,然后对会发生什么事情有一个比较好的概念。即使完全不知道任何关于Stimulus的东西或者查看controller本身的代码。这很像伪代码。这和阅读一份HTML片段,然后这段HTML中有一个外链的JavaScript文件将事件处理器应用到其中元素的情况有很大不同。这还维护了关注分离,而这点在许多现代JavaScript框架中已经遗失了。

  正如你所看到的,Stimulus并不纠结于创建HTML。相反,它将自身绑定到一个已存在的HTML文档上。在大多数情况下,HTML是在服务器端渲染的,无论是在页面加载的时候(首次点击或者通过Turbolinks)或者是通过一个Ajax请求改变DOM的时候。

  重点是操纵元素,而不是创建元素。这一点让Stimulus和大部分现代JavaScript框架有很大不同。几乎所有的现代JavaScript框架都聚焦于通过某种形式的模板语言将JSON转变成DOM元素。许多人使用这些框架来创建一个空的页面,然后毫无例外地使用那些通过JSON-到-模板的渲染方式产生的元素来填充这个空页面。

  Stimulus在状态管理问题上也有很大不同。大部分框架有通过JavaScript对象保持状态的方法,然后基于保持的状态渲染HTML。Stimulus正好相反。状态保存在HTML中,因此controllers可以在页面改变时丢弃,但是当缓存的HTML再出现的时候又可以重新初始化为原来的样子。

  如果你享受复杂框架,例如React + Redux的复杂性和维护它们所需要投入的努力,那么你可能不会对Turbolinks+Stimulus感兴趣。

  相反,如果你对正在使用的这些现代技术所带来的强烈复杂性和应用程序分离性感到非常不满,那么你应该会在我们的方案中找到解决之道。

  在Basecamp,我们已经在多个不同版本的Basecamp和其它应用程序中使用这种架构很多年了。GitHub使用了一种类似的方案,起到了非常好的效果。关于“现代”Web应用程序看起来应该是什么样子,这不仅是相对于主流理解的另一种合理可选方案,还是一种非常有吸引力的方案。

  事实上,这感觉和我们在Basecamp开发Ruby on Rails时非常相似。同一种秘方,同一种味道。感觉现代主流方案有一些不必要的复杂性,而我们可以用更少的投入更快地完成更多的事情。

  Stimulus是我在为期两周的深入研究过去一年中我采用的JavaScript的当前状态后想到的。我深挖了我们的Basecamp 3 代码库中的模式,提取出一个原型,然后使用最新的最伟大的JavaScript技术来实现它。这个深入研究最初产生了针对Rails的Webpacker,而如果没有Sam StephensonJavan Makhmali的杰出工作,就不会有这个框架。他们根据我粗糙的Stimulus原型,用TypeScript进行了重写。正如他们重写Turbolinks 5时一样。这是一段美丽的代码。

版权保护: 本文由 主页 原创,转载请保留链接: http://www.ecentiv.com//cms/349.html