此Meteor模板代码是在调用meteor create myApp
时生成的默认代码。在main.js
中,前3行是:
import { Template } from 'meteor/templating';
import { ReactiveVar } from 'meteor/reactive-var';
import './main.html';
但是当我发表评论时,该应用程序仍在运行。阅读docs无法回答我的问题,如果应用程序在没有它们的情况下运行,为什么我们需要import
语句?感谢
答案 0 :(得分:1)
早期版本的Meteor严重依赖于使用全局命名空间来访问共享库。从Meteor 1.3开始,您现在可以使用Meteor's ES2015 module支持。这意味着您可以使用导入/导出功能来公开对代码库各个部分的访问,而不必依赖全局变量。现在,使用导入/导出是引用应用程序部分的首选/推荐方式,因此更新了meteor create
功能以证明这一点。如您所述,您可以删除上面的import
语句,您仍然可以全局访问Template
和ReactiveVar
(以便向后兼容)。值得注意的是,未来可能会发生变化 - Meteor完全接受了ES2015模块的支持,并且可能完全放弃使用全局变量(尽可能地)。
还有一点需要注意 - Meteor 1.3还引入了新的“延迟加载”功能,其中存储在/imports
目录下的应用程序代码将不再在应用程序启动时急切加载。存储在/imports
目录下的代码只有在代码库中其他位置的import
语句引用时才会被加载。有关详细信息,请参阅Special directories。