Где логики c go с SwiftUI по сравнению с React? - PullRequest
5 голосов
/ 22 января 2020

В документации SwiftUI сложно выяснить, что на самом деле происходит на каждом рендере / когда они происходят / что их вызывает (или я не знаю, где искать!)

Я пытаюсь чтобы избежать создания класса для создания logi c в новом файле и обращения к нему из моих представлений, я просто не понимаю, куда идет logi c, и официальный учебник не очень go рассматривает его. Я пытаюсь построить систему на основе компонентов, такую ​​как React, где дети независимы и не должны полагаться ни на что другое (включая вспомогательные классы, где logi c может жить в компонентах).


Вот что я не получаю.

В ответ я могу сказать:

  const [someStateVariable, setSomeStateVariable] = useState("")
  const dependsOnStateVariable = someStateVariable ? 0 : 1;

Но в SwiftUI я не могу сделать:

@State var someStateVariable: String = ""
var dependsOnSomeStateVariable = someStateVariable ? 0 : 1

То же самое идет на выполнение logi c с передачей реквизита (переменные инициализации). В ответ, я могу делать вещи с этими реквизитом. В Swift я не могу.

1) Все ли логи c должны go в init? Я предполагаю, что, читая документацию по структуре, это имеет смысл, я просто хочу убедиться, что правильно ее понимаю.

2) Где находится документация по алгоритму сравнения и событиям жизненного цикла? Что запускает рендеринг? Когда запускается init? При каждом рендеринге (ie. Свойства, переданные при изменении или изменении состояния) или при первом появлении (я предполагаю, что при каждом рендеринге существует onAppear).

3) Как мне реагировать на побочные эффекты? Похоже, это немного сложно. Есть ли эквивалент useEffect? Код я могу запустить только при изменении определенных состояний или входных переменных?

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