美团网官网首页车主人群考核开始push纠正消息有误什么意思

这篇文章主要介绍了美团网官网艏页网站前端的组件化开发经验,随着Facebook开源JavaScript的React框架,组件化的前端开发优势日益凸显,俨然成为当下的潮流,需要的朋友可以参考下

前言一位计算機前辈曾说过:

回过头来看引入生命周期除了带来扩展性外,更重要的是理顺了组件的各个阶段有助于更好的理解和运用。

Data Binding数据绑定昰美团网官网首页期盼已久的功能将 View 和 ViewModel 之间的交互自动化无疑会节省工程师的大量时间。在组件化减少关注点和降低复杂度后实现数據绑定变得更加可能。

美团网官网首页最终实现的数据绑定方案主要参考了 Angular通过在 html 节点上添加特定的属性声明绑定逻辑,js 扫描这些内容並进行相应的渲染和事件绑定当数据发生变化时,对应的内容全部重新渲染

使用属性声明绑定逻辑的好处是可以同时支持后端渲染,這对于美团网官网首页团购这样的偏展现型业务是非常必要的用户可以很快看到页面内容。

Flux实现数据绑定后美团网官网首页不得不面對另外一个问题:如何协同多个组件间的数据。因为某个组件的数据变化很有可能引起其他组件的变化。例如当修改购买数量总金额會变化,而总金额超过 500 后还需要展示大额消费提醒。

为了解决这个问题美团网官网首页引入了 Flux,使用全局消息总线的思路进行跨组件茭互

例如因为交互复杂而一直让美团网官网首页非常头疼的项目购买页,在应用组件 + Flux 重构后各模块之间的互动更加清晰:

其他方面的妀进还有很多,包括引入模板引擎 LightnCandy 约束模板逻辑、支持组件任意嵌套、支持异步加载并自动初始化等

随着组件化 2.0 的逐步完善,基本已经鈳以从容应对日常开发在效率和质量方面都上了一个台阶。

组件化 3.0:重启征程时间的车轮滚滚前行2014 年底,美团网官网首页遇到一些新嘚机遇和挑战:

基于 Node 的全栈开发模式开始应用前后端渲染有了更多的可能性
YUI 停止维护,需要一套新的资源管理方案
新业务不断增加需偠找到一种组件共享的方式,避免重复造轮子
结合之前的实践以及在这一过程中逐渐积累的对业内方案的认知,美团网官网首页提出了噺的组件化方案:

基于 React 开发页面组件使用 NPM 进行分发,方便共建共享
基于 Browserify 二次开发建设资源打包工具 Reduce,方便浏览器加载
建设适应组件化開发模式的工程化开发方案 Turbo方便工程师将组件应用于业务开发中


React在组件化 2.0 的过程中,美团网官网首页发现很多功能和 React 重合例如 Data Binding、Lifecycle、前後端渲染,甚至直接借鉴的 Flux除此之外,React 的函数式编程思想、增量更新、兼容性良好的事件体系也让美团网官网首页非常向往借着前端铨栈开发的契机,美团网官网首页开始考虑基于 React 进行组件化 3.0 的建设

NPM 负责组件的发布和安装。可以认为是“分”的过程粒度越小,重用嘚可能性越大
Reduce 负责将页面资源进行打包可以认为是“合”的过程,让浏览器更快地加载

整体思路和组件化 1.0 如出一辙却又那么不同。

Turbo单單解决分发和打包的问题还不够业务开发过程如果变得繁琐、难以 Debug、性能低下的话,恐怕不会受到工程师欢迎

为了解决这些问题,美團网官网首页在 Node 框架的基础上提供了一系列中间件和开发工具,逐步构建对组件友好的前端工程化方案 Turbo主要有:

1.支持前后端同构渲染,让用户更早看到内容
2.简化 Flux 流程数据流更加清晰易维护
4.采用 cursor 机制,保证数据修改/获取同步
6.通过这些改进一线工程师可以方便的使用各種组件,专注在业务本身上开发框架层面的支持也反过来促进了组件化的发展,大家更乐于使用一系列组件来构建页面功能

小结发现痛点、分析调研、应用改进的解决问题思路在组件化开发实践中不断运用。历经三个大版本的演进组件化开发模式有效缓解了业务发展帶来的复杂度提升的压力,并培养工程师具备小而美的工程思想形成共建共享的良好氛围。毫无疑问组件化这种“分而治之”的思想將会长久地影响和促进前端开发模式。美团网官网首页现在已经准备好迎接新的机遇和挑战,用技术的不断革新提升工程师的幸福感

我要回帖

更多关于 美团网官网首页 的文章

 

随机推荐