HTML5培训-高端面授HTML5培训机构
云和教育:云和数据集团高端IT职业教育品牌 全国咨询热线:0371-67988003
课程 请选择课程
    校区 请选择校区
      • 华为
        授权培训中心
      • 腾讯云
        一级认证培训中心
      • 百度营销大学
        豫陕深授权运营中心
      • Oracle甲骨文
        OAEP中心
      • Microsoft Azure
        微软云合作伙伴
      • Unity公司
        战略合作伙伴
      • 普华基础软件
        战略合作伙伴
      • 新开普(股票代码300248)
        旗下丹诚开普投资
      • 中国互联网百强企业锐之旗
        旗下锐旗资本投资

      鸿蒙2.0开源,H5前端开发的机会来了!

      • 发布时间:
        2020-09-24
      • 版权所有:
        云和教育
      • 分享:
      近日,华为发布鸿蒙2.0操作系统,该系统应用开发框架采用JavaScript作为开发语言,这对于前端开发工程师来说无疑是一个好消息!果然JavaScript才是全世界最好的语言…

      JavaScript优势:

      • JS 生态圈目前来看形式很好,未来也是第一梯队。
      • JS 语言发展迅速,开源社区支持广泛,上手入门门槛远低于 Java 和 Native 语言。后期希望可以原生支持 TypeScript。
      • JS + WebAssembly 性能还是不错的,未来如果能加上 V8 速度会更快,不知道华为未来是否有能力自己做一个 VM 支持 WebAssembly。
      • Write once,run everywhere。目前来看是对 JS + WebAssembly 最好的描述。

      鸿蒙的 JS 框架 ace_lite_jsfwk,从名字中可以看出来这是一个非常轻量级的框架,官方介绍说是“轻量级 JS 核心开发框架”。其核心代码只有 5 个 js 文件,大概也就 300-400 行代码吧。

      • runtime-coresrccoreindex.js
      • runtime-coresrcobserverobserver.js
      • runtime-coresrcobserversubject.js
      • runtime-coresrcobserverutils.js
      • runtime-coresrcprofilerindex.js

      从名字可以看出来,这些代码实现了一个观察者模式。也就是说,它实现了一个非常轻量级的 MVVM 模式。通过使用和 vue2 相似的属性劫持技术实现了响应式系统。

      在「鸿蒙 2.0」上,开发者只需编写形如 Vue 组件式的 JavaScript 业务逻辑,即可将其渲染为智能手表等嵌入式硬件上的 UI 界面。

      这里将其分为自上而下的三个抽象层来介绍:

      1. JS 框架层,可理解为一个大幅简化的 Vue 式 JavaScript 框架
      2. JS 引擎与运行时层,可理解为一个大幅简化的 WebKit 式运行时
      3. 图形渲染层,可理解为一个大幅简化的 Skia 式图形绘制库

      这三个抽象层,整体构成了一套面向嵌入式硬件的 GUI 技术栈。不同于许多高呼「不明觉厉 / 深不可测」的舆论,个人认为至少对于 GUI 部分,国内凡是接触过目前主流 Hybrid 式跨端方案或 JS 运行时研发的一线开发者,都很容易从源码出发来理解它。

      对于「鸿蒙 2.0」在 GUI 部分的亮点,个人能想到这些:

      • 确实有务实(但和当年 PPT 介绍完全两码事)的代码。
      • 不是 WebView 套壳,布局和绘制是自己做的。
      • 无需超过大学本科水平的计算机知识,也能顺利阅读理解。

      而至于明显(不只是某几行代码写得丑)的缺失或问题,目前看来则有这么一些:

      JS 框架层

      • 没有基本的组件间通信(如 props / emit 等)能力
      • 没有基本的自定义组件能力
      • 没有除基础依赖追踪以外的状态管理能力

      JS 引擎与运行时层

      • 标准支持过低,无法运行 Vue 3.0 这类需 Proxy 的下一代前端框架
      • 性能水平弱,难以支持中大型 JS 应用
      • 没有开放 DOM 式的对象模型 API,不利于上层抹平差异

      图形渲染层

      • 没有实质可用的 GPU 加速
      • 没有 SVG 和富文本等高级渲染能力
      • Canvas 完成度低,缺状态栈和很多 API

      对于所有熟悉 JavaScript 的前端开发者们,JavaScript 被鸿蒙这样的「国之重器」采用,可以大大增强前端的道路自信、理论自信、文化自信和技术栈自信。

      想成为国之栋梁吗?来写 JavaScript 吧!

      声明:除云和数据原创文章外,分享和转载的文章皆为促进IT技术的传播,并不代表本微信赞同其观点和对真实性负责,仅做交流学习使用,非商业用途。如有文章或图片的原作者有异议或涉及版权问题,请立即联系我们,我们将在第一时间进行改正或删除,确保您的权益,谢谢支持!