2016-08-03 23 views
0

Vor ungefähr einem Jahr habe ich Meteor benutzt, und jetzt möchte ich es wieder verwenden, aber viele Dinge haben sich geändert.Warum Paketimporte in Meteor benötigt werden

Wenn ich das Blaze-Tutorial auf Meteor.com folgen, fügen sie für die Einfuhr oben auf ihre Dateien:

import { Meteor } from 'meteor/meteor'; 
import { Template } from 'meteor/templating'; 
import { ReactiveDict } from 'meteor/reactive-dict'; 

ich arbeiten, um die App bekam. Aber wenn ich die Importe kommentiere, funktioniert die App so, wie sie funktionieren sollte. Warum werden diese Importe benötigt?

Ich benutze immer noch das normale Javascript, nicht ES6.

Danke!

+1

Wenn Sie ES6 nicht verwenden, können Sie die Importsyntax nicht verwenden, es sei denn, Sie haben einen Modulbündler, der sie erkennt. – gcampbell

+0

Ah ich dachte schon, es müsste etwas mit ES6 machen. Aber was ist der Hauptvorteil der Verwendung von Importen? – coder14

+0

Es ist nicht spezifisch für Meteor, aber es gibt einen Modul-Bundler namens Rollup, der * tree-shaking * verwendet, um Dinge zu entfernen, die Sie nicht brauchen, und es funktioniert nur mit ES6-Modulen. Schau es dir an, es ist großartig;) – gcampbell

Antwort

3

Die import-Anweisung verwendet wird, Funktionen, Objekte oder Primitive zu importieren, die von einem externen Modul exportiert wurden, ein anderes Skript, usw.

Der Name Parameter ist der Name des Objekts, das die exportierten Mitglieder erhalten wird. Die Member-Parameter geben einzelne Member an, während der Name-Parameter alle Member importiert. Der Name kann auch eine Funktion sein, wenn das Modul einen einzelnen Standardparameter und nicht eine Reihe von Elementen exportiert. Im Folgenden finden Sie Beispiele zur Erläuterung der Syntax.

Importieren Sie den gesamten Inhalt eines Moduls. Dies fügt myModule in den aktuellen Bereich ein und enthält alle exportierten Bindungen von "my-module.js".

Weitere Einzelheiten zu den verschiedenen Möglichkeiten, wie wir den Import zusammen mit ihrer Verwendung verwenden können, finden Sie unter this.

1

Sie verwenden immer noch die alten Globals für Abwärtskompatibilität. Es wird jedoch empfohlen, die Importe zu verwenden, damit in zukünftigen Versionen die Globals entfernt werden. Sie können mehr in der appropriate section of the guide lesen.

+0

Alles klar, also ist es ein Fallback, wenn sie jemals die Globals entfernen werden? – coder14

+0

Das ist meine Meinung. Ich glaube jedoch nicht, dass sie jemals die Globals entfernen werden. –

1

Ok, Sie wissen, import ist ein exportierendes Objekt bereits aus einer anderen Datei zu importieren. Der Punkt, den Sie möglicherweise verpasst haben, ist, dass MDG gehört hat, dass das Laden aller Dateien standardmäßig gestoppt werden muss oder dass zumindest ein Mittel bereitgestellt werden muss, um zu steuern, was im Arbeitsspeicher geladen ist und was nicht.

Suchen Sie nach dem speziellen Verzeichnis /imports.

Dateien in diesem Ordner werden nicht mehr automatisch geladen, sondern nur über die import Anweisung.

Für das Tutorial, ich denke, sie haben diese Funktionalität nicht erklärt, und weil es nur Standardfunktionen importiert, die immer noch aus Gründen der Abwärtskompatibilität geladen werden, ändert nichts nichts, diese Anweisungen zu entfernen.

+0

Importieren anderer Dateien aus dem/imports-Ordner mit 'import {Tasks} from '../api/tasks.js '; 'klingt logisch, aber ich verstehe nicht, warum man Pakete wie' import {Meteor} von' meteor/meteor 'importieren soll; 'wenn es sowieso nichts tut. – coder14

+0

Ich würde sagen, beide gute Praxis und "nur für den Fall", wie Sean Hayes erwähnt? – ghybs