Начальные состояния
Когда машина состояний запускается, она сначала входит в начальное состояние. Машина может иметь только одно начальное состояние верхнего уровня; если бы было несколько начальных состояний, машина не знала бы, с чего начать!
В XState начальное состояние определяется свойством initial в конфигурации машины:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
В нашем видеоплеере paused является начальным состоянием, потому что видеоплеер по умолчанию приостановлен и требует взаимодействия пользователя для начала воспроизведения.
Указание начального состояния¶
Обычно машина состояний имеет несколько конечных состояний, в которых она может находиться. Свойство initial в конфигурации машины указывает начальное состояние, в котором машина должна начать работу.
Родительские состояния также должны указывать начальное состояние в своём свойстве initial. Следующая trafficLightMachine начнёт в состоянии 'green', как указано в свойстве initial конфигурации машины.
Когда машина достигает родительского состояния 'red', она также будет в состоянии 'red.walk', как указано в свойстве initial состояния 'red'.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | |