Was ist der Unterschied zwischen "dart: html" und "dart: dom" Paket?

8

Ich beginne mit einigen der Dart-Beispiele. Dann wollte ich das DOM mit document.query('#someId') abfragen, wie hier beschrieben hier , aber es scheint, dass es keins gab Abfragemethode im Dokument. Auch das Erstellen eines neuen Elements mit 'new Element.tag (' p ') funktioniert nicht.

Dann finde ich heraus, dass es funktioniert, wenn ich das importierte Paket von dart:dom nach dart:html ändere. Aber die Verwendung von beiden gibt mir eine Menge duplicate definition of _XYZ .

Also frage ich mich:

  1. Was ist der Unterschied zwischen dart:html und dart:dom package
  2. ?
  3. welchen sollte ich verwenden
  4. warum kann ich nicht beide verwenden
Andreas Köberle 22.01.2012, 12:11
quelle

4 Antworten

6

Ein Update auf alle Antworten, und wahrscheinlich macht diese Frage nicht mehr anwendbar, dass dart: dom veraltet ist.

Siehe diesen Beitrag auf der dartlang-Website.

    
Chris Buckett 04.05.2012, 13:02
quelle
10

Beantworten Sie ein bisschen außer Betrieb

  1. Welches sollte ich verwenden : Sie sollten dart:html verwenden, da es die sauberste Abstraktion über dem DOM bietet.

  2. Warum kann ich nicht beide verwenden : Es sollte eigentlich nicht benötigt werden, aber Sie können tatsächlich zu den zugrunde liegenden dart:dom Implementierungen von dart:html gelangen, indem Sie einen schmutzigen Hack verwenden, der hier . Die bessere und sauberere Lösung besteht darin, Darts Fähigkeit zu nutzen, Importe umzubenennen, zB #import('dart:dom', prefix: 'dom'); , wie von @munftig unten beschrieben / p>

  3. Was ist der Unterschied zwischen dart: html und dart: dom package . Ich denke, der Unterschied zwischen ihnen ist ähnlich zu JQuery ( dart:html ) vs JS DOM Manipulation ( dart:dom ).

Das Dart-Team bemüht sich, die dart:html API so einfach und überraschend zu machen, wie wir es von Bibliotheken wie JQuery (dom manipulation) und Tree.js (WebGL-Programmierung) und D3 (SVG Zeichnung). Außerdem versuchen sie, einem API-Stil über alle diese Funktionsbereiche hinweg zu folgen, so dass die SVG- oder WebGL-API ähnliche Konstrukte wie die DOM-API verwendet, wodurch sichergestellt wird, dass alle Teile gut zusammenspielen.

Update : ab Mai 2012 dart: Dom ist jetzt veraltet und wird entfernt.

    
Lars Tackmann 22.01.2012 13:39
quelle
7

Lars hat mit deiner Frage einen ausgezeichneten Job gemacht. Ich füge nur hinzu:

  

warum kann ich nicht beide verwenden

Das kannst du eigentlich. Das Problem ist, dass beide Bibliotheken für einige Dinge denselben Namen verwenden (hauptsächlich window ). Wenn Sie beide importieren, kollidieren diese Namen, was Dart nicht zulässt. Um das zu lösen, können Sie eines davon mit einem Präfix importieren:

%Vor%

Wenn Sie dann auf einen aus dart:html importierten Namen verweisen, verwenden Sie einfach den Namen. Wenn Sie eine DOM-Datei wünschen, geben Sie ihr ein Präfix:

%Vor%     
munificent 23.01.2012 21:05
quelle
0

Die kurze Antwort zu den bereits gegebenen ausgezeichneten Antworten: Benutze dart: html wann immer du kannst. Verwenden Sie dart: dom, wenn Sie müssen (und geben Sie einen Fehler, wenn Sie müssen).

    
dma 25.01.2012 01:18
quelle

Tags und Links