dart - 如何在 Dart 中显示 "structure a web app"?

标签 dart dart-pub

我开始学习 Dart 。它似乎是一门不错的语言,在某些方面比 JavaScript 有了真正的改进。但是,由于它声称带有“包含电池”并且适用于“结构化网络应用程序”,因此我无法理解如何使用它实际构建网络应用程序。几乎所有的教程都集中在语言特性上,但是 Dart 非常简单并且有很多熟悉的部分,所以这是最容易的部分。
最近我爱上了 AngularJs。现在路由,双向绑定(bind),嵌套范围,关注点的干净分离......这对我来说实际上意味着“结构化”。但我发现的所有 Dart 示例都是关于选择 HTML 元素并将监听器附加到它们的。这是老式的类似 jQuery 的 Web 编程,坦率地说,与我阅读“结构化”时的想法相反。
我不想比较一种语言和一个框架,我知道 Angular Dart 已经过时了,但我担心我错过了一些 vanilla Dart,因为如果它只是关于 lambdas 的更短语法,基于类的 OOP 与原型(prototype) OOP等等,我不明白它应该如何改变游戏规则:有许多其他语言提供替代 JS 语法(à la CoffeeScript)并编译成它,而且它们不会以失败为代价与现有 JavaScript 库和工具的完美集成。

当然,它具有可选的静态类型,这可能很棒,但这更多地取决于偏好。我是一名全职 Python 和 Ruby 开发人员,我对动态语言非常熟悉。这就是他们所说的“结构化”吗?

感谢您最终会做出的任何澄清。

最佳答案

我在 AngularDart 工作,并且有一些构建 Web 应用程序的经验。

在 Dart 中构建 Web 应用程序时,您会选择一个 Web 应用程序框架,例如 AngularDart 或 polymer.dart。 Web 应用程序框架有很多意见,这些意见不适合核心库。在这方面,“ Vanilla Dart ”相当 Vanilla 。

由于我最熟悉 Angular,我将讨论 Angular + Dart 的组合。然而,这篇文章的其余部分也适用于 polymer.dart。

Angular 为您的应用程序提供了很多结构。我们已经能够为 Dart 和 Javascript 提供类似的结构。指令、数据绑定(bind)和依赖注入(inject)的概念都存在于两者中。

Dart 提供了更多的结构,我们已经能够在构建 AngularDart 时使用该结构。例如指令 API 是根据注释定义的,这意味着 IDE 可以理解它们并可以帮助您编写代码。

Dart 中有许多“结构”功能。我最喜欢的工具之一是工具。类型和注释带来了更好的工具支持。

Dart 中的类型在与工具结合使用时最有用。自动完成很棒,但对于大型 Web 项目,静态分析甚至更好。例如,在 AngularDart 中,由于指令是带注释的类,我们可以断言注释是正确的。更有趣的是构建工具的潜力。在 AngularDart 中,我们有一个工具可以提取和分析所有指令。这种类型的工具在 Javascript 中是可能的,但在 Dart 语言中很容易并且支持。

关于dart - 如何在 Dart 中显示 "structure a web app"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20628733/

相关文章:

dart - 使用statemachine pub软件包时同时进入两种状态?

dart - "pub upgrade"是增量升级还是直接升级到最新版本?

logging - 为什么从Dart Logging_handler包中导入browser_logging_handler失败?

dart - 无效的版本约束 : Cannot include other constraints with "^"

flutter - Dart/Flutter 检查值是否为整数/整数

dart - 如何将 TextInputType 设置为韩语?

android - 如何模拟/ stub Flutter 平台 channel /插件?

dart - 如何在页面加载时打开脚手架的抽屉?

dart - Dart ,聚合物生成失败,找不到聚合物/polymer.dart吗?

ruby-on-rails - 如何将 Dart 集成到 Rails 应用程序中