返回博客首页
← 所有文章

NativeScript 5.2 正式支持 Vue.js

2019 年 2 月 14 日 — 作者 Emil Tabakov

NativeScript 5.2 发布了!继续阅读以了解现在已包含在 NativeScript 中的功能和改进的完整列表。

Vue.js 官方支持

在过去的一年里,Vue.js 用户是 NativeScript 社区发展最快的部分。正如大多数人可能记得的那样,NativeScript-Vue 集成最初是由 Igor Randjelovic 领导的社区努力,并取得了巨大成功。在过去的一个月(以及过去一年的趋势中),NativeScript-Vue 应用程序是我们生态系统中最常创建的项目类型,远远超过了“纯 JavaScript”和“纯 TypeScript”项目。

nativescript and vue.js

这促使团队决定在 5.2 版本中宣布正式支持 NativeScript 中的 Vue.js。这是 NativeScript 社区上一次社区调查中投票率第二高的功能。这听起来很棒,但在实践中意味着什么?

  • Vue.js、Angular 和 Core 框架之间新功能的功能一致性。这意味着,对于我们添加的每个新功能,我们将 Vue.js 支持视为与任何其他变体一样重要。
  • 与 Vue.js 的插件兼容性。在过去几个版本中,我们花费了大量精力来使所有由 NativeScript 开发和拥有的插件在 NativeScript-Vue 项目中可用。我们所有的插件现在都有一个演示应用程序,展示了如何使用 Vue.js 来使用该功能。此外,为了能够提供预期的质量,每个插件都包含 Vue.js 特定的测试,这些测试验证组件的行为是否符合预期。最后,市场上有两种新的徽章,适用于每个指示相应的插件是否与 Vue.js 或 Angular 兼容的插件。这是我们为插件用户提供透明度以了解他们计划使用的组件的预期,以及激励插件作者在他们的插件中为这两个框架提供支持的一部分。
  • 对于需要任务关键型支持的那些项目,NativeScript 企业支持 提供现在涵盖 NativeScript-Vue 项目以及所有其他变体。此优惠补充了 NativeScript 社区支持的所有其他免费支持渠道:NativeScript 社区 Slack 其中 #vue 频道是整个工作区中最活跃的频道之一,以及 StackOverflow
  • NativeScript 工程团队将参与 Vue.js 集成的维护和开发。这意味着我们将根据与我们待办事项中的所有其他内容相比的项目的优先级来解决 NativeScript-Vue 项目中的问题。
  • 涵盖 Vue.js 项目的网络研讨会和内容创建。您可以期待更多网络研讨会、博客文章和文档文章,旨在帮助您开发基于 Vue.js 的下一个杀手级 NativeScript 应用程序。

热模块替换改进

NativeScript 继续努力提供快速流畅的开发体验,尤其是在迭代开发-测试-调试循环时。对于 5.2,我们将在 热模块替换 (HMR) 功能中带来一系列改进,这将使开发变得轻而易举。以下是本版本更改的完整列表

  • HMR 现在处理 SASS 文件的更改。
  • app.css 中的更改将在不重启应用程序的情况下应用。您可以通过观看我用鲜艳的颜色销毁我的详细信息模板来了解它的工作原理 😂

 

  • HMR 适用于 Angular 项目开箱即用。
  • tns debug 现在支持 --hmr 标志,您可以应用更改而不会中断在 Chrome DevTools 中启动的调试会话。在下一个版本中,将支持在 Visual Studio Code 中使用 HMR 进行调试。同时,查看此基本调试会话,在此会话中,我尝试修复玩家的总进球数


错误日志记录改进

在您的移动应用程序发布到商店并走红之后,最困难的工作之一是监控应用程序的运行状况并排查用户遇到的问题。这一直是一个痛点,因为 App Store 和 Google Play Store 中提供的默认工具与 NativeScript 应用程序配合得不好,错误报告服务(如 Crashlytics)也是如此。

到目前为止,只有导致应用程序崩溃的事件才会被报告。这只是应用程序中可能发生的所有异常的一小部分,有时重要信息可能无法传达给错误报告服务。在本版本中,异常也将被报告,启用它非常容易

var application = require("application"); 

application.on(application.discardedErrorEvent, function (args) { 
    console.log(error.message); 
    console.log(error.stackTrace); 
    console.log(error.nativeException); 
    //report the exception in your analytics solution here 
});

markingMode: none 现在是官方支持的选项

5.1 版本 中宣布的那样,我们一直在努力为 markingMode: none 选项提供兼容性。在本版本中,我们专注于社区插件,并为插件作者提供支持,以使他们的插件与该选项兼容。您可以查看 markingMode: none 文章,以及一篇关于此事的博客文章,该文章将在不久后发布。

在本版本中,markingMode: none 选项是 Android 运行时的官方支持模式。我们鼓励大家尝试一下,如果出现任何问题,请告知我们,尤其是在 Android 上遇到性能问题的项目中。已经尝试过该选项的用户反馈非常积极,我们希望更多项目能够从性能提升中受益。

原生调试工具包

在我们的团队中,我们实施了多种实践,以便更轻松地开发原生代码,无论是在插件中还是在应用程序中。最近,我们决定将这些实践与整个社区共享。这些现在打包为一个名为 nativescript-dev-debugging 的 NativeScript 开发插件。

在初始配置之后,该插件将为您提供几种工作流程,这些工作流程将在开发和调试原生代码时为您减轻工作。一篇介绍这些工作流程的博客文章将在不久后发布。

直接在 iOS 中使用第三方库

我们对 NativeScript 框架的一个非常自豪的功能是100% 访问原生代码。这允许高度的开发人员生产力和最大程度地重用现有材料和原生库的文档。到目前为止,有一个重要的例外,即直接从应用程序中使用 iOS 中的第三方原生库(Pod)。这是在框架早期做出的一个设计决定,旨在刺激开发人员创建插件并与社区共享这些插件。

NativeScript 市场 现在提供超过 1000 个插件,我们认为不再需要此约束。这就是为什么在 5.2 中,团队决定删除此限制,并在需要原生代码开发时允许更大的灵活性和生产力。现在您可以在没有任何开销的情况下针对原生库进行开发,只需将它们放到 App_Resouces/iOS 文件夹中并开始编写代码。

NativeScript Appium 集成

nativescript-dev-appium 包提供了 Appium 与 NativeScript 之间的集成,以提供构建广泛且可靠的测试基础设施的能力。此包对于确保 NativeScript 框架本身的质量至关重要,并且已被许多 NativeScript 用户用来确保其应用程序的质量。

最近,发布了一个新的主要版本,其中包含以下改进

  • 无需为本地开发提供功能配置,这将使本地测试开发变得更加容易
  • 支持代码共享项目和 Jasmine(到目前为止,只支持 Mocha
  • 与最新的 NativeScript 和最新的 Appium 版本兼容
  • 错误修复

接下来,我们的努力将集中在准备有关如何充分利用此功能的广泛文档和教程。

其他更新

  • 文档 UI 迁移 - 由于历史原因,NativeScript UI 组件的文档(如图表、侧边抽屉、RadListView 等)是一个独立的网站,具有不同的外观和风格以及结构。这在使用这些组件时造成了很多混乱和不便。在本版本中,我们将 NativeScript UI 文档合并到 main docs.nativescript.org 网站中。
  • Open JDK 支持 - 自 2019 年 1 月起,Java SE 不再免费用于商业用途。NativeScript 需要 JDK 作为 Android 本地设置的一部分,为了适应这种变化,我们正在切换到 Open JDK,这是一个免费的开源实现。这并不意味着您的设置中会发生故障,如果您已为 Oracle JDK 获得有效的商业许可证,则可以继续使用它。但是,展望未来,我们的测试基础设施将主要集中在验证框架是否与 Open JDK 一起工作。
  • V8 引擎 更新到 7.1
  • 新的 Xcode 构建系统兼容性 - Xcode 10 发布了一个 新的构建系统。到目前为止,由于某些问题,NativeScript 一直在使用旧的构建系统。在本版本中,这些问题已得到解决,我们正在使用最新的构建系统。