Это хорошая практика, чтобы обернуть StatefulWidgets внутри StatelessWidgets? - PullRequest
1 голос
/ 10 марта 2020

Я знаю, что StatelessWidgets не имеет состояния, которое изменится на более поздней стадии, с другой стороны, StateFulWidgets do. Так что это хорошая идея, чтобы сохранить только изменяемую часть внутри виджета с состоянием, а затем использовать его вместе с остальной частью пользовательского интерфейса внутри виджета без состояния?

Например, если у меня есть страница с датой тогда мне нужно иметь виджет с сохранением состояния для хранения этого элемента управления датой, но остальная часть пользовательского интерфейса, который будет фактически использовать выбранную дату, не изменится. Так даст ли это большую производительность, особенно в отношении перестройки виджета, если я сделаю элемент управления датой виджетом с сохранением состояния и удержу его внутри виджета без сохранения состояния? Я имею в виду, что в этом случае родительский виджет будет перестроен при выборе даты?

Ответы [ 3 ]

0 голосов
/ 10 апреля 2020

Спасибо за ваш хороший вопрос!

Ответ - использовать пакет Provider и обернуть виджет, который необходимо изменить, в виджет Consumer . Он слушает изменения и перестраивает только то, что вам нужно, без перестройки всего дерева виджетов.

Это видео хорошо объясняет это: https://www.youtube.com/watch?v=MkFjtCov62g

0 голосов
/ 10 апреля 2020

Это хорошая практика. Фактически код приложения Flutter по умолчанию использует это.

0 голосов
/ 10 марта 2020

Да, в целях оптимизации можно размещать виджет с состоянием внутри виджета без состояния. Когда виджет с состоянием redr aws, виджет без состояния останется прежним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...