construtor vs componentWillMount; o que um componentWillMount pode fazer que um construtor não pode?

Até onde pude ver, a única coisa que umcomponentWillMount pode fazer e umconstructor não pode é ligarsetState.

componentWillMount() {
    setState({ isLoaded: false });
}

Desde que não ligamosrender ainda, umsetState nocomponentWillMount preparará o objeto de estado antes de inserirmos o primeirorender() passar. Que é essencialmente a mesma coisa que umconstructor faz:

constructor(props) {
    super(props);
    this.state = { isLoaded: false };
}

Mas vejo outro caso de uso em quecomponentWillMount é útil (no lado do servidor).

Vamos considerar algo assíncrono:

componentWillMount() {
    myAsyncMethod(params, (result) => {
        this.setState({ data: result });
    })
}

Aqui não podemos usar oconstructor como atribuição athis.state não vai dispararrender().

SobresetState nocomponentWillMount? De acordo comReagir documentos:

componentWillMount() é chamado imediatamente antes da montagem. É chamado antesrender(), portanto, definir o estado nesse método não acionará uma nova renderização. Evite introduzir efeitos colaterais ou assinaturas nesse método.

Então, aqui acho que o React usará o novo valor do estado para a primeira renderização e evita uma nova renderização.

Questão 1: Isso significa, por dentrocomponentWillMount, se chamarmossetState no retorno de chamada de um método assíncrono (pode ser um retorno de promessa), Reactbloqueia a renderização inicial até que o retorno de chamada seja executado?

Tendo essa configuração ativadalado do cliente (sim, vejo que o caso de uso na renderização do lado do servidor), se eu assumir que o acima é verdadeiro, não verei nada até que meu método assíncrono seja concluído.

Estou faltando algum conceito?

Questão 2: Existem outros casos de uso que posso obter comcomponentWillMount somente, mas não usando oconstructor ecomponentDidMount?

questionAnswers(1)

yourAnswerToTheQuestion