我一直是 NativeScript 的“休闲”粉丝。它最初发布时我就对它很感兴趣,但一直没有时间深入了解这个平台。直到去年年底,一个客户需要我做一个演示,我才真正开始体验 NativeScript。我也很幸运地可以使用 NativeScript-Vue。我已经使用 Vue 一段时间了,并且爱上了它的易用性。对我来说,这是两全其美。我可以使用 Vue,同时也能获得 NativeScript 的实际经验。
总的来说,这是一次很棒的体验。不过,我遇到了一些让我感到意外的事情,我想和其他人分享一些使用 Vue 经验来学习 NativeScript 的小贴士。我还要补充一点,我有很多、很多年使用 Apache Cordova 和 Ionic 进行混合移动应用开发的经验。这些经验也影响了我的预期,并导致了一些意想不到的结果。
Apache Cordova 项目做得比较好的事情之一是定义了一组“核心”插件,这些插件保证可以与项目的最新版本一起使用。这些插件包括一些相当常见的需求,例如相机、定位等等。
当我第一次开始使用 NativeScript-Vue 项目时,我有点惊讶地发现相机支持并不像预期的那样稳定。需要说明的是,这可能只是我个人的看法,但我使用相机时遇到了很多困难,我一直以为它会“正常工作”。最后,这有点令人沮丧,所以我把我的沮丧变成了博客文章:在 NativeScript Vue 应用中使用相机。举个例子,我遇到了很多文档问题(我相信现在都已解决)。虽然在使用开源项目时遇到这种情况很常见(我们都是人,我们有有限的空闲时间,文档往往是最容易被忽视的部分),但我来自 Cordova 背景的预期是它会得到更好的支持。
话虽如此……我克服了它。我和它一起工作。当我遇到文档问题时,我会将其作为问题提交。从今往后,我明白 NativeScript 本身比 Cordova 更“不干涉”,并且对某些插件的优先级没有做出任何假设。
所有这些听起来可能有点吓人,但这并不是一个糟糕的情况。我主要需要知道该去哪里找。 NativeScript 市场 有超过一千种插件选项。
这里有一个很棒的搜索体验,请注意插件的列表方式
那排图标可以让你快速了解插件支持哪些内容以及可以使用哪些 JavaScript 库。
如果所有这些图标都不太清楚,不用担心。如果你将鼠标悬停在它们上面,你就会得到一个很好的提示,告诉你它们的具体含义。从左到右,你有
还记得我说过 Cordova 有一组他们总是确保可以正常工作的插件吗?结果 NativeScript 也有一些类似的东西,“经过验证”的插件。(你可以在上面的屏幕截图中看到图像选择器插件已通过验证。)
经过验证的插件会根据多种不同的标准进行检查,包括是否有演示。事实上,插件必须通过十多个不同的要求。NativeScript 的团队已经 写下了 这些规则以及背后的思考。(作为一个开发者,我非常感谢这一点。不要只是告诉我“我必须做 X”,也要告诉我为什么。)
这个简短而甜蜜。Vue 路由器不起作用。有一个简单的 手动 解决方案。就是这样。😀 有关更多信息,我有两篇文章可以帮助你
这个真的让我很惊讶。一旦我弄清楚了,它就变得很有意义,但它一开始真的让我很困惑。
好消息是,你当然可以在 NativeScript 应用中编写 JavaScript。坏消息是你不能编写所有你习惯的 JavaScript。
那么有什么不同呢?JavaScript 语法,你编写代码的核心方式,可以正常工作。你想要在代码中使用时髦的箭头函数,尽管放手去做吧!
但特性,一些特定于浏览器的特性,将无法工作(通常),比如 `LocalStorage` 和 `IndexedDB`。
我想这有点像当你从客户端代码迁移到 Node 时。当然你不能在 Node 中使用 `IndexedDB`,因为它是一个浏览器技术。但对我来说,这不是立即显而易见的。
总的来说,这不是你需要担心的事情,因为通常会有一个解决方案来反映你的需求。以 `LocalStorage` 和 `IndexedDB` 为例,你可以在 NativeScript 应用中找到针对 客户端存储 的多个解决方案。
好吧,是的,这是一个大问题。你可以非常粗略地将 NativeScript 开发描述为:编写一些你已经知道的 JavaScript,并将其与一种新的 UI 语言(你之前不知道)结合起来。如果你看一下 NativeScript-Vue 的 介绍,这里有一个很可爱的小部分
这里有两项。第一项涉及学习 NativeScript CLI。这不是问题。我在工作中使用大量的 CLI 工具。说实话,我记不住所有工具以及它们的工作原理,所以我通常会从 `somecli -?` 或者 `somecli -h` 或者 `somecli -wtf` 开始,直到我再次弄清楚为止。
但是第二部分很棘手。使用 NativeScript 就意味着放弃你的 HTML,切换到一种新的语法。这并不太可怕
<StackLayout>
<Label text="Hello World" />
</StackLayout>
我敢肯定你只要读一下,就能猜到它会做什么。但你绝对不能低估这里你需要进行的“思维转变”。如果你已经了解 Vue,那就太好了,你会在学习 NativeScript-Vue 时占有优势。但请确保给自己充足的时间来熟悉 UI 组件。
与 HTML 一样,你将拥有专注于布局的组件和专注于元素(如表单字段)的组件。与 HTML 一样,你将拥有许多选项和定制样式的能力。
不要低估这条学习曲线。这里有一些提示供你考虑
充分利用 NativeScript Playground 和相应的原生预览应用。这可能很明显,但不要忘记,在开发大型应用时,如果遇到 UI 障碍,你可以创建一个新的 Playground 应用来专门测试 UI 方面。让你的代码在那里正常工作,然后将其带回到你的应用中。作为旁注,这也适用于 JavaScript 方面。我经常使用 CodePen 来快速构建 Vue 本身的一些东西,然后将代码迁移到我的 NativeScript 应用中。
接下来,查看 学习 NativeScript 布局。这是一个在线工具,可以带你了解 UI 布局方面的基础知识
另一个很棒的工具是 NativeScript 主题构建器,它为你的应用提供了一个在线设计器,用于主题设计。
我希望以上提示能帮助你为使用 NativeScript 做好准备。最重要的是,你能做的最好的事情就是练习,而 NativeScript Playground 非常适合练习。
我很想听听你在学习 NativeScript 时遇到了哪些“障碍” - 请在下面留言!