Как уменьшить число запросов при обмене данными между компонентами

Имеются взаимосвязанные компоненты. Приведу упрощенный пример. Компоненты, которые кидают сообщения

class Country extends Component
{
    public function setCountry(string $country)
    {
        ...
        $this->emit('country_changed', $country);
    }
}


class DeliveryInformation extends Component
{
    public function setAddres(array $addres)
    {
         ...
        $this->emit('delivery_changed', $addres);
    }
}

И имеются компонент-слушатель

class OrderInformation extends Component
{
    public $country;
    public $delivery;
 
    protected $listeners = [
        'country_changed' => 'setCountry',
        'delivery_changed' => 'setDelivery'
    ];
 
    public function setCountry(string $country)
    {
        $this->country = $country;
    }
 
    public function setDelivery(array $delivery)
    {
        $this->delivery = $delivery;
    }
}

В UI меняем страну. B это время на сервер летят запросы:

  1. Изменение состояния компонента Country, который вызывает событие country_changed
  2. Летит запрос (сработка триггера на событие) на изменение состояния OrderInformation
  3. Изменение состояния компонента DeliveryInformation, который вызывает событие delivery_changed
  4. Летит запрос (сработка триггера на событие) на изменение состояния OrderInformation

По сути мне нужно в компоненте OrderInformation, при выполнении некоторых методов, использовать информацию с других компонентов. Каким образом можно реализовать получение информации с других компонентов без вот этой кучи запросов?


Ответы (0 шт):