2015-02-01 2 views
2

Для начинающих Dart я работаю над простой сетью, состоящей из менее 10 классов. Я совершенно смущен, как организовать их в файлах, папках (и в пакетах? И в библиотеках?).Как структурировать простую веб-приложение Dart

В настоящее время у меня есть

web/ 
    img/ 
    *.png 
    styles/ 
    main.css 
    index.html 
    main.dart 
    *.dart 

Все, кроме одного файла Dart содержит один класс. Импорт осуществляется через import 'a.dart'; (например, в b.dart).

Это, очевидно, неправильно, потому что Dart Editor жалуется

импортируемых библиотек c.dart 'и 'd.dart' не должен иметь одинаковое имени ''

I прошли через соответствующие разделы в pub documentation и прочитали около possible app structures в документах Polymer. Я также рассмотрел структуру примера приложения pop_pop_win, которое поставляется с Dart. Все это немного подавляющее, потому что существует так много вариантов, вариантов и комбинаций.

+1

См https://stackoverflow.com/questions/16695634/warning-that-imported-libraries-have-the-same-name-when-they- не. Похоже, это ваша настоящая проблема, а не проблема с структурой папок. –

+0

Спасибо. Итак, если я правильно понял, я могу добавить библиотеку foo; part 'a.dart'; ... 'to' main.dart', а затем добавить 'часть foo;' в другие файлы Dart. Работает, но означает, что я должен иметь _all_ импорт в 'main.dart', потому что файлы частей не могут иметь индивидуальный импорт ... не приятно. Или я могу добавить 'library X;' в каждый файл Dart. Это еще хуже, потому что 1 класс в 1 файле еще не создает «библиотеку». Хмм, я считаю, что должен быть лучший способ ... –

ответ

1

Если бы я тебя, я хотел бы создать библиотеки и импорт, как так:

awesomeLibrary.dart

library awesome; 

part 'foo.dart'; 
part 'bar.dart'; 

foo.dart

part of awesome; 

class Foo 
{ 
    static function Baz() {} 
} 

bar.dart

part of awesome; 

class Bar 
{ 
    ... 
} 

main.dart

import 'awesomeLibrary.dart'; 

void main() 
{ 
    Foo.Baz(); // Imported library function 
} 
Смежные вопросы