Недавно у меня был небольшой личный проект, который я хотел перестроить, проект, который я начал довольно давно, используя AngularJS 1.x, но так и не успел его завершить.

С тех пор, однако, в мире Javascript произошли бесчисленные изменения: с появлением ES6 и всех новых фреймворков, казалось лучшей идеей просто начать с чего-то нового. Моим первым соображением был React, так как в настоящее время мы работаем над ним, и я недавно использовал React Native для создания мобильного приложения, это казалось логичным выбором, также отчасти потому, что это должна быть веб-версия мобильного приложения. , Лусус.

Затем я вспомнил, что Aurelia, то, что было в моем списке ToDo (обучение) на 2016 год, и будучи одновременно небольшим и личным проектом, не было вреда в том, чтобы попробовать что-то новое, хотя у него есть какой-то фактический срок. В худшем случае, мне не нравится фреймворк, я сформировал верное мнение и могу попробовать что-нибудь еще.

Поработав как с AngularJS 1, так и с Angular 2, я не совсем понимал, чего ожидать от Аурелии. Это была идея Роба Эйзенберга, так как он не был доволен направлением, которое команда взяла с Angular 2, и лично я тоже не совсем честно говоря, я обнаружил, что это была ужасная катастрофа, но это мое мнение ...

Старт не мог быть проще, быстрое развертывание приложения Скелетная навигация Aurelia, конечно же, вкус ES6, и я ушел.

Моим нулевым вторым впечатлением было замешательство, когда я расширял папку «src» в Atom, чтобы найти беспорядок файлов без видимой структуры, к чему я не привык, но очень легко исправить в соответствии с моими личными предпочтениями.

Не прочитав ни одной документации, не просмотрев онлайн-уроков и практически полностью погрузившись в фреймворк, я ожидал, что просто прыгнуть будет сложнее, чем было, но это было одновременно знакомо и по-другому.

В AJS 1.x я бы сказал, что некоторые из более черных вещей были упрощены, в том числе модули / компоненты - это простой тег require.

Если вы посмотрите на блок выше, вы увидите 2 способа включения компонента, первый из которых можно рассматривать как «умный» компонент, который содержит представление с логикой, где оба файла имеют общее имя и отличаются только протяженностью.

Во-вторых, это будет «тупой» или просто компонент просмотра, не содержащий логики.

Визуализировать эти импортированные компоненты так же просто, следуя тому же соглашению, что и имя вашего файла.

Логика привязки к вашим компонентам - это почти интеллектуальный способ, которым она связывает все вместе, во-первых, вам фактически не нужно специально ссылаться на файл JS в вашем компоненте, все связано вместе с помощью «require» без расширения.

Однако это означает, что существуют некоторые правила именования ваших файлов / классов. Файл должен совпадать, а имена классов должны соответствовать версии CamelCase имени файла.

Для привязки данных вам просто нужно импортировать «связываемый» модуль, объявить ссылку привязки и добавить дополнительный обработчик изменений, который полезен, если вам нужно внести какие-либо изменения в данные для целей просмотра, например, форматирование даты.

Определенно нужно было чему-то научиться, но я должен сказать, что именно таким, как я себе представлял, обернулся AngularJS 2.

Нельзя сказать, что Aurelia идеальна, и, возможно, мне все еще нужно дополнительное обучение, но я обнаружил, что регистрация ошибок и обработка сбоев слишком изящны и бесшумны. Если, например, вы допустили опечатку, в консоли браузера не регистрируются ошибки, поэтому вы внесете изменения, все не согласуется, и приложение просто находится в браузере в состоянии неопределенности без указания того, что не так. , не появляется даже бесполезного сообщения типа «ошибка».

Вызов API не выполняется, и вы не написали для него специальную обработку, он либо возвращается к предыдущему представлению, либо снова зависает без каких-либо указаний, это могло быть преднамеренным, также действительно должно было обрабатывать ошибки сами, но я все еще чувствую, что это немного слишком изящно.

Также очень глупо, со сборкой в ​​процессах gulp, сборка, которая используется для dev, минимизирует index.html, но на этапе экспорта (производства) нет, даже 10 секунд, чтобы исправить это, но все равно забавно.

В общем, всем, кто пришел из AngularJS 1.x и хочет перейти к следующему поколению, я бы настоятельно рекомендовал Aurelia вместо Angular 2.x, в Aurelia бесконечно меньше глупости и плохих решений, и гораздо больше знакомых.



Твиттер | Instagram | "YouTube"