热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前端大事记之几件大事

不知道大家都听没听说过这句哈:前端的江湖总是不缺话题,且从没有消停过!!!你要说没听说过,那就对

不知道大家都听没听说过这句哈:前端的江湖总是不缺话题,且从没有消停过!!!你要说没听说过,那就对了,这句话是我刚刚说的。但是这句话想必大家都听说过:铁打的后台,流水的前端。

什么意思?就是后台技术几乎没什么变天,前端技术一天一个样,今天用这个,明天用那个。变化多端的前端,让我们前端程序员在爬坑的路上,颠簸流离。

我们今天就一起细数一下最近几天发生的几件大事。

一、Airbnb 弃用 RN,回归原生

timg

就在 6 月 20 日,Airbnb 技术团队在 Medium 上宣布,Airbnb 放弃使用 React Native,将回归到使用基于原生技术的自有框架开发 App。理由如下:

React Native 并不能真正实现完全的跨平台抽象,有时候仍然需要针对特定平台单独编写代码来解决问题。这就间接要求他们的工程师必须熟悉三个平台才能真正用好 React Native,然而绝大多数开发者只熟悉一两个平台,久而久之便引发了一系列的问题。

说实话,相信使用 RN 的同学都很了解 Airbnb 描述的上述问题,确实由于平台和交互的各种原因,RN 给个别一些组件在 Android 平台和 iOS 平台提供的使用方式和组件都是有差异的,导致对于一些界面需要我们单独判断编写。确实需要开发人员同时都得了解 Android 和 iOS 的特性与异同,同时开发者还得了解 RN 技术。

RN 的坑确实很多,不知道现在有多少人还在坑里,或者在爬坑和填坑的路上,但是大家也不要气馁,因为接下来这件事,可能会让你在 RN 的路上看到一些希望。

二、Facebook 正在重构 RN

最近 React 的工程经理 Sophie Alpert 在其官方博客上宣布,Facebook 要重构 React Native,让它加更轻量、更灵活性、更适应 Javascript 生态圈的发展。据说在过去的几年里,他们发现最初的设计原则成为 Javascript 和原生应用之间的桥梁,加大了某些特性的开发难度。比如:

异步桥接意味着不能直接将 JS 逻辑与很多原生 API 集成在一起,因为这些原生 API 是同步的。

另外,批量桥接意味着,RN 应用程序调用原生实现的函数会更加困难。对于完全使用 RN 构建的应用程序,这些限制还是可以承受的,但对于在 RN 与现有应用程序代码之间进行复杂集成的应用程序,情况则变得相当糟糕。

因此,Facebook 正在对 React Native 进行大规模重构,让架构变得更加灵活,并更好地与混合 Javascript / 原生应用开发中的原生基础设施集成。

通过这个项目,他们将应用在过去 5 年中学到的知识,逐步让架构更现代化。他们正在对 React Native 内部进行大量的重写,当然大部分工作都是在底层进行的,所以现有的 React Native 应用程序几乎不需要做出更改。

为了使 RN 更轻量化并能更好地适应现有的原生应用,此次重构主要从三个方面进行:

  • 首先,改变线程模型。UI 更新不再需要在三个不同的线程上执行,而是可以在任意线程上同步调用 Javascript 进行优先更新,同时将低优先级工作推出主线程,以便保持对 UI 的响应
  • 其次,将异步渲染功能引入 React Native 中,允许执行多个渲染并简化异步数据处理
  • 最后,简化桥接,让它更快、更轻量。原生和 Javascript 之间的直接调用效率更高,并且可以更轻松地构建调试工具,如跨语言堆栈跟踪

原文地址:https://facebook.github.io/react-native/blog/2018/06/14/state-of-react-native-2018

三、React 被 VUE 反超?

![timg (https://ws2.sinaimg.cn/large/006tKfTcly1fsns26jj2rj30fh09oaan.jpg)](/Users/loonggg/Downloads/timg (1).jpeg)

就在 Airbnb 在弃用 RN 之时,React 的 star 数也被 VUE 反超。就在近几天,Vue.js 在 GitHub 上的 star 数量终于超过了 React.js 的 star 数量,并在不久之后双双破了 10W。

Vue.js 作为一个中国大神尤雨溪开发的前端框架,是在 2014 年 2 月份开源的,Vue.js 以其比 React 更简单,更方便,非常的火爆。在过去的两年中,Vue 的增长速度比其他任何主流的 Javascript 框架都快,最近赶上了 Angular.js,并逐渐缩小了它与 Angular 和 React 之间的差距。

但是,star 数并不能代表一切,根据 NPM 软件包的下载量来衡量,React 仍然在实际使用方面占据主导地位。它即将超过每月 1000 万的巨大下载量,并且还一直保持着高速的增长。

四、Flutter 发布首个预览版

Snip20180625_97

Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作。在全世界,Flutter 正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

它也是构建未来的 Google Fuchsia 应用的主要方式。

框架特性可以说是:

1、快速开发

Flutter 的热重载帮助你快捷方便的试验、重构 UI、添加特性和修复 bug。在仿真器、模拟器和 ios、android 硬件上体验亚秒级的重载,而不会丢失状态。

2、绚丽 UI

通过 Flutter 内建的漂亮的质感设计和 Cupertino(ios-flavor)小工具、丰富的动画 api,平滑的自然滚动和平台感知,让用户感到满意。

3、响应式框架

通过 Flutter 的现代响应式 (Reactive) 框架和丰富的平台布局和基础组件轻松构建您的用户界面。用强大而灵活的 apis 解决 2D、动画、手势、效果等难题。

4、访问原生功能

通过平台 api、第三方 sdk 和原生代码使您的应用变得生动起来。Flutter 让您可以重用您现有的 java、swift 和 Objc 代码,并在 iOS 和 Android 上访问原生特性和 SDK。

Flutter 可以说是现在越来越到得重视,也有要火的趋势,但是其官方编程语言为 Dart,也是一门全新的语言。所以说,上手成本比较高,对于移动端开发人员,语言以及框架都是全新的,整个技术栈的积累也都得从头开始。

Flutter 对于移动开发人员,最诱惑的能力是其完全的跨平台特性,不同于 RN 这种一处学到处写,它是一处写到出跑。

另外 Flutter 不同于市面上的其他解决方案,之前我们最常见的无非就是两类,一个就是:使用平台支持的 Web 技术,还一个就是本地跨平台,比如:RN、Weex 等。但是 Flutter 跨平台最核心的部分,是它的高性能渲染引擎(Flutter Engine)。Flutter 不使用浏览器技术,也不使用 Native 的原生控件,它使用自己的渲染引擎来绘制 widget。

对于 Android 平台,Flutter 引擎的 C/C++ 代码是由 NDK 编译,在 iOS 平台,则是由 LLVM 编译,两个平台的 Dart 代码都是 AOT 编译为本地代码,Flutter 应用程序使用本机指令集运行。

Flutter 正是是通过使用相同的渲染器、框架和一组 widget,来同时构建 iOS 和 Android 应用,而无需维护两套独立的代码库。

最后

最后,看到这里,看到前端大事记之后,不知道你有什么想法?前端的变化多端,前端技术的层出不穷,是不是感觉前端技术变天比女人变脸还快?但是,其实也不用焦虑,也不用担心,一个技术的成熟到完全流行起来,是需要时间的,是需要过程的,这段时间和过程,就是你提高自己的最好时机。

面对千变万化的前端,我对大家只有一个忠告和建议:以不变应万变,这个不变的就是学习

文章首发于微信公众号:非著名程序员,关注我,每天与 10 万开发者共同进步,你离成功,只差一个关注。


推荐阅读
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 如何撰写初级和高级前端开发者的专业简历
    如何撰写初级和高级前端开发者的专业简历 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文介绍了 Vue 开发的入门指南,重点讲解了开发环境的配置与项目的基本搭建。推荐使用 WebStorm 作为 IDE,其下载地址为 。安装时请选择适合您操作系统的版本,并通过 获取激活码。WebStorm 是前端开发者的理想选择,提供了丰富的功能和强大的代码编辑能力。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • MySQL的查询执行流程涉及多个关键组件,包括连接器、查询缓存、分析器和优化器。在服务层,连接器负责建立与客户端的连接,查询缓存用于存储和检索常用查询结果,以提高性能。分析器则解析SQL语句,生成语法树,而优化器负责选择最优的查询执行计划。这一流程确保了MySQL能够高效地处理各种复杂的查询请求。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • feat: Enhances Jest Testing Capabilities with Snapshot Support ... [详细]
  • 在处理大规模数据数组时,优化分页组件对于提高页面加载速度和用户体验至关重要。本文探讨了如何通过高效的分页策略,减少数据渲染的负担,提升应用性能。具体方法包括懒加载、虚拟滚动和数据预取等技术,这些技术能够显著降低内存占用和提升响应速度。通过实际案例分析,展示了这些优化措施的有效性和可行性。 ... [详细]
  • ccFlow新增属性:流程发起限制条件优化与扩展
    在ccFlow最新版本中,新增了流程发起限制条件的优化与扩展功能。这一改进不仅增强了系统的灵活性和安全性,还为开发者提供了更加精细的控制选项,确保流程启动时的数据准确性和合规性。通过合理配置这些限制条件,可以有效避免因不当操作导致的数据混乱和流程错误,提升整体业务流程的管理水平。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 卓盟科技:动态资源加载技术的兼容性优化与升级 | Android 开发者案例分享
    随着游戏内容日益复杂,资源加载过程已不仅仅是简单的进度显示,而是连接玩家与开发者的桥梁。玩家对快速加载的需求越来越高,这意味着开发者需要不断优化和提升动态资源加载技术的兼容性和性能。卓盟科技通过一系列的技术创新,不仅提高了加载速度,还确保了不同设备和系统的兼容性,为用户提供更加流畅的游戏体验。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 为开发者提供了一系列实用的参考网站和资源链接,包括HTML速查手册( 和 ),帮助开发者快速查找和学习相关技术知识。此外,还涵盖了其他重要的开发工具和文档,为编程工作提供全面支持。 ... [详细]
  • SSL 错误:目标主机名与备用证书主题名称不匹配
    在使用 `git clone` 命令时,常见的 SSL 错误表现为:无法访问指定的 HTTPS 地址(如 `https://ip_or_domain/xxxx.git`),原因是目标主机名与备用证书主题名称不匹配。这通常是因为服务器的 SSL 证书配置不正确或客户端的证书验证设置有问题。建议检查服务器的 SSL 证书配置,确保其包含正确的主机名,并确认客户端的证书信任库已更新。此外,可以通过临时禁用 SSL 验证来排查问题,但请注意这会降低安全性。 ... [详细]
author-avatar
77阿建
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有