Навіщо мені використовувати Angular? [зачинено]


20

З базового підручника Angular, схоже, що все, що він робить, - це отримати якийсь JSON з API та показати його. Також є її магія подвійного зв’язку.

Але чому я б використовував його замість резервного рішення (як Rails), яке формує подання в бекенді і подає його користувачеві, все вже на місці? Які випадки використання?

Відповіді:


26

TLDR;

Angular допомагає вам впоратися зі складністю, властивою багатим інтерфейсам користувача. Зі збільшенням складності інтерфейсу користувача традиційна модель генерації сторінок на сервері стає набагато складнішою. Кутовий дозволяє розкладати інтерфейс користувача на керовані фрагменти та дозволяє відокремлювати інтерфейс користувача від реалізації. Це значно спрощує генерацію сторінок на стороні сервера, але Angular дійсно стає власною, коли ви переходите до чистих програм на основі JavaScript. Хороший приклад такого застосування - Trello .

Довга історія

Кутовий насправді не націлений на сайти, які ви можете зручно реалізовувати, генеруючи все на сервері та надсилаючи поперек. Крім того, хоча це ідеально хороший підхід, який працює для багатьох веб-сайтів та додатків в Інтернеті, стає все складніше (таким чином важко) підтримувати такий підхід, коли ви намагаєтеся підвищити рівень інтерактивності на своєму сайті.

Зрештою, спосіб вирішення цього питання полягає в тому, щоб все більше і більше натискати на ваш інтерфейс користувача в сторону Javascript рівняння. Кутовий дозволяє розбивати інтерфейс користувача на компоненти, забезпечуючи чіткий поділ між виглядом і відчуттям та принципом роботи. Потім ви можете створювати досить прості сторінки на сервері, а передній кінець JS використовується для створення багатого інтерфейсу, який здійснює окремі дзвінки на ваш сервер для необхідних їм даних.

Однак настає момент, коли все, що ви хочете зробити, це серверна сторінка-заглушка, яка завантажує повністю програму на основі JavaScript. Мабуть, найвідоміший приклад такого типу використання, коли Angular дійсно світить, - це Trello (він використовує Backbone, а не Angular, але це той самий варіант використання). Існує сайт http://builtwith.angularjs.org/, на якому є більше прикладів сайтів, які використовують Angular.

Отже, коротка відповідь? Angular полегшує створення багатих, інтерактивних користувальницьких інтерфейсів, дозволяючи розкласти ваш інтерфейс користувача на компоненти і в кінцевому підсумку повністю перейти на JavaScript.


3
Кутові натрії AngularJ не забезпечують чіткого розділення зовнішнього вигляду та логіки.
rsman

13
@rsman, це однозначно. Вся суть прив'язки даних полягає в тому, що ви не пишете цілу купу DOM-маніпуляційного коду, кутовий це робить для вас, ерго, ви визначаєте, як це виглядає, ви визначаєте, як працюють ваші взаємодії тощо, але ви уникаєте з'єднання цих двох разом з кодом, який оновлює, як це виглядає, з коду, який обробляє взаємодії.
guysherman

3
Trello, використаний у прикладі, не використовує Angular blog.fogcreek.com/the-trello-tech-stack
JAMESSTONEco

1
@jamesstoneco насправді, це не так, я просто використав Trello як приклад суто клієнтської програми JS. Це було одним із ранніх, щоб зробити це добре.
guysherman

7

Йдеться про створення більш чуйних інтерфейсів користувача. Подвійне прив'язування, введення залежних можливостей тощо дозволяє створювати динамічні сторінки досить легко. Ви можете писати директиви у кутовій, що дає декларативний спосіб побудови представлення.

Як приклад, у поточному проекті ми маємо представлення, яке використовує кілька сотень рядків коду JavaScript для того, щоб забезпечити чуйне користування. Тим не менш, сторінка трохи розмита і дуже складна в обслуговуванні. Ми почали шукати кращий варіант і переглянули backbone.js та knockout.js. Врешті ми спробували Angular. Нам вдалося створити набагато чуйнішу та ремонтованішу сторінку лише за допомогою кількох рядків коду. Зник весь код маніпуляції DOM. Зникли всі незграбні твори твору, які потрібно було знайти та вставити в потрібних місцях. Пропав весь код, який було написано для синхронізації моделі та подання. З цим досвідом рішення про переїзд до Angular стало простішим, і поки що ми не пошкодували про це.


"Пройшов весь маніпуляційний код DOM." На мою думку, це найголовніше.
Схилився

5

Кутовий - це розробка програм для однієї сторінки, це допомагає забезпечити міцний каркас для вашої програми. Це також добре з формами, не дуже добре зі складними переповненими інтерфейсами користувачами з великою кількістю даних. Двостороння прив'язка даних спочатку "магія", але ви повинні знати, що більшість останніх фреймворків (включаючи сам Angular 2) відходять від двостороннього прив'язки даних для більш простого підходу потоку даних вниз / потоку вгору (що говорить про це історія тут буде занадто довгою).

Я також повинен попередити вас, що у Angular немає певного способу робити речі, і іноді пропонується занадто багато способів надати шкіру коту, що може зробити криву навчання крутішою. Крім того, якщо ви хочете масштабувати кутовий додаток, вам доведеться зрозуміти його внутрішню механіку та можливий вплив на продуктивність. Після того, як ви це зробите, і як тільки ви встановите стійкі суцільні дизайнерські зразки, небо є межею. Але на це потрібно присвятити час.

Зважаючи на це, ваше питання, мабуть, стосується більше того, які випадки використання SPA, а не самого Angular.

Випадки використання програм для однієї сторінки призначені для того, щоб веб-додатки мали надійні UI / UX та загалом покращили відчуття програм. Не потрібно перезавантажувати сторінку, ви економите на час візуалізації та пропускній здатності. Ви також розділяєте дані та презентації, які є приголомшливими. Ваша заявка стає:

  • Статичні файли, включаючи ваш index.html
  • Дані, що обслуговують API REST
  • Додаток, керований даними
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.