onAppear/onDisappear — колбэки появления; .task запускает async работу, отменяемую при уходе view — предпочтительнее для загрузки данных.
Разбор
task(id:) перезапускается при смене id.
- onAppear может вызываться чаще, чем ожидаете в List.
- Отмену Task уважайте (check CancellationError).
- Side effects не кладут в
init view без нужды.
Итог
.task связывает async lifetime с присутствием view на экране.