我目前正在玩角色2的Dart版本。
我已经看到该库正在使用大量元数据作为@Component
。
我想知道这些指令是如何运作的?
我继续http://www.darlang.org。他们解释了如何定义注释,而不是如何使用它来构造一个对象,就像在angular.io中一样。
有人可以解释魔法是如何运作的吗?
答案 0 :(得分:1)
在Dart注释中,除了添加它们的代码元素之外,不要做任何事情。
在运行时:
您可以使用dart:mirrors
在导入的库中查询这些注释的字段,函数,类,参数等元素。
不建议使用dart:mirrors
浏览器应用程序。在这种情况下,您可以使用具有非常相似功能的reflectable包。
另见:
在构建时
您可以创建变换器并在pubspec.yaml
中注册,以便pub serve
和pub build
运行。
在这种情况下,Dart分析器可用于查询源文件的注释,并且像Angular一样,在构建步骤中修改源代码以添加/替换/删除任意代码。
有关变压器的更多详情
- https://www.dartlang.org/tools/pub/assets-and-transformers.html
- https://www.dartlang.org/tools/pub/transformers/
- https://www.dartlang.org/tools/pub/transformers/examples/
- https://www.dartlang.org/tools/pub/transformers/aggregate.html
- https://pub.dartlang.org/packages/code_transformers