Несколько входных свойств против Одно входное свойство

#angular

#angular

Вопрос:

Спор о том, «лучше» ли определять нормализованные свойства для новых компонентов Angular или предоставлять одно свойство, которое инкапсулирует указанные свойства.

Нормализованный вариант

Три входа — один для оси X, один для оси yAxis и один для опций.

 [
   { "id": "1", "label": "Dave" },
   { "id": "2", "label": "Laura" }
]
  
 [
   { "id": "1", "label": "Happy" },
   { "id": "2", "label": "Sad" }
]
  
 {
   "maxRowSelections": "1",
   "lockRowOnMaxSelections": "false"
}
  

Инкапсулированный вариант

Один вход.

 {
   "xAxis": [
      { "id": "1", "label": "Dave" },
      { "id": "2", "label": "Laura" }
   ],
   "yAxis": [
      { "id": "1", "label": "Happy" },
      { "id": "2", "label": "Sad" }
   ],
   "options": {
      "maxRowSelections": "1",
      "lockRowOnMaxSelections": "false"
   }
}
  

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

Другой парень предпочитает инкапсулированный вариант и утверждает, что именно так это делают многие библиотеки, доступные в Интернете. Нам также необходимо загружать компоненты динамически, и наличие одного входного свойства с одинаковым именем для всех наших компонентов определенно упрощает выполнение этого требования с нашими существующими знаниями; никаких аргументов от меня нет.

Мне интересно, может ли кто-нибудь выдвинуть более обоснованные аргументы в пользу одного подхода по сравнению с другим?

Ответ №1:

Я не думаю, что это так важно. Делайте то, что пригодится для вашей работы. Если данные принадлежат друг другу и не являются необязательными, например, x и y asis или options, я бы сделал один ввод — просто чтобы сделать HTML более читаемым. Но если у меня есть дополнительные входные данные или данные, которые не имеют ничего общего друг с другом, я обычно делаю много входных данных. Однако: я не вижу реальной выгоды ни от того, ни от другого.