Неизменяемость компонента и RequiredArray

RedDeveloper
18.04.2023 11:47
Неизменяемость компонента и RequiredArray

При изучении проектирования компонентов один из рекомендуемых советов - никогда не изменять входные свойства.

Давайте рассмотрим пример ниже. (Я использую Angular, но то же самое может быть применимо и к другим фреймворкам).

@Component({…})
class MyComponent {

  @Input() status: Status[];

   get sortedStatus() {
     return this.status.sort();
   }
}

Здесь sort является изменяемой операцией. Она не только сортирует массив, но и изменяет его.

Я подготовил [stackblitz](https://angular-njd2pq.stackblitz.io/ ). Здесь у нас есть массив status типа string. Он передается в дочерний компонент. Он отображается как в родительском, так и в дочернем компоненте. В дочернем компоненте у меня есть кнопка Sort Array, которая в основном сортирует `статус`, полученный через ` @Input()`.

Сортировка массива из дочернего компонента сортирует массив и он отражается в родительском компоненте.

Мы можем предотвратить такое поведение, используя **ReadonlyArray**.

Плюсы использования ReadonlyArray
Плюсы использования ReadonlyArray

Этот интерфейс убирает все изменяемые операции, такие как _push, pop, shift, unshift_, а также _sort_.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?

05.05.2023 14:00

Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.

Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом

05.05.2023 11:59

Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря своим методам, они делают код очень простым для понимания и читабельным.

JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы

05.05.2023 11:57

Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний, то, не теряя времени, практикуйте наш бесплатный онлайн тест 1100+ JavaScript MCQs и развивайте свои навыки и знания.

Массив зависимостей в React
Массив зависимостей в React

05.05.2023 09:44

Все о массиве Dependency и его связи с useEffect.

Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий

05.05.2023 09:26

Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут вам настроить, как будет выглядеть ваш сайт Temple, и вы можете настроить его дизайн в зависимости от ваших потребностей в дополнение к более чем 15+...