Когда использовать открытую опору против условного рендеринга модального компонента Material-UI?

#javascript #reactjs #material-ui

Вопрос:

При использовании модального компонента Material-UI (или любого из компонентов, созданных с его использованием), есть ли какая-либо выгода в использовании open prop по сравнению с условным удалением компонента? Я заметил, что вы теряете приятный завершающий переход, но есть ли какое-либо преимущество в производительности, если существует много модалов?

Пример использования open реквизита:

     const [openModal, setOpenModal] = React.useState(false);

    return (
        /* code to set openModal to true */
        <Modal open={openModal} onClose={() => setOpenModal(false)}>modal stuff here...</Modal>
    );
 

Пример использования условного рендеринга:

     const [openModal, setOpenModal] = React.useState(false);

    return (
        /* code to set openModal to true */
        {
            openModal amp;amp;
                <Modal open onClose={() => setOpenModal(false)}>modal stuff here...</Modal>
        }
    );
 

Ответ №1:

Я думаю, что второй подход может быть менее эффективным, если вы посмотрите модальный компонент исходного кода, Вы можете увидеть много инициализация происходит в коде, useEffects и некоторые другие вещи, которые каждый раз вы условно отобразить модальный, он будет установлен снова в дом, в то время как если вы держите в открытое состояние контролируется модальные себя компонент не будет установлен снова, по крайней мере, не инициализация и оно будет более эффективным, ИМО. Я предлагаю вам прочитать исходный код, но для меня всегда что-то перерисовывать и монтировать было бы менее эффективно.