Estou aprendendo Redux com React e me deparei com esse código. Não tenho certeza se é específico ao Redux ou não, mas vi o seguinte trecho de código em um dos exemplos.
@connect((state) => {
return {
key: state.a.b
};
})
Embora a funcionalidade de connect
seja bastante direta, mas eu não entendo o @
antes connect
. Não é nem mesmo um operador JavaScript se não estiver errado.
Alguém pode explicar por favor o que é isso e por que é usado?
Atualizar:
De fato, parte react-redux
disso é usada para conectar um componente React a um repositório Redux.
javascript
reactjs
decorator
redux
Salman
fonte
fonte
Respostas:
O
@
símbolo é de fato uma expressão JavaScript atualmente proposta para significar decoradores :Aqui está um exemplo de configuração do Redux sem e com um decorador:
Sem decorador
Usando um decorador
Os dois exemplos acima são equivalentes, é apenas uma questão de preferência. Além disso, a sintaxe do decorador ainda não está incorporada em nenhum tempo de execução do Javascript e ainda é experimental e sujeita a alterações. Se você quiser usá-lo, ele estará disponível usando o Babel .
fonte
@connect(state => ({todos: state.todos}), dispatch => ({actions: bindActionCreators(actionCreators, dispatch)}))
Muito importante!
Esses adereços são chamados adereços de estado e são diferentes dos adereços normais; qualquer alteração nos adereços de estado do componente acionará o método de renderização do componente repetidas vezes, mesmo se você não os usar, portanto, por razões de desempenho, tente ligar apenas ao componente os adereços de estado que você precisa dentro do seu componente e se você usar um sub adereços, vincule-os apenas.
exemplo: digamos que dentro do seu componente você precise apenas de dois adereços:
não faça isso
faça isso
fonte