#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 более читаемым. Но если у меня есть дополнительные входные данные или данные, которые не имеют ничего общего друг с другом, я обычно делаю много входных данных. Однако: я не вижу реальной выгоды ни от того, ни от другого.