Estendendo componentes do Lightning

Se você já atuou em um grande projeto de Lightning, deve estar cansado de repetir o mesmo trecho de código toda vez que precisa interagir com uma Controller, não é mesmo? Então hoje quero te mostrar duas coisas legais, a primeira é o que o título do post diz, estender um componente do Lightning, e o que isso significa, isso significa que você pode aproveitar parte de um componente dentro de outro, mas fique tranquilo, isso fará sentido assim que começarmos a colocar a mão na massa, e segundo vamos fazer isso criando um componente que permitirá você fazer chamadas Apex com apenas 1 linha de código. Entendendo o problema Como eu disse antes, se você já trabalhou com grandes projetos em Lightning, muito provavelmente já precisou fazer uma chamada Apex para consumir dados do Salesforce, e se fez isso mais de uma vez, então você deve ter escrito o código abaixo algumas vezes, não é? var action = component.get(“c.getAccounts”); action.setParams(params); action.setCallback(this, function(response) { var state = response.getState(); if (state === “SUCCESS”) { var result = response.getReturnValue(); //do something with the result } else if (state === “INCOMPLETE”) { // wait, what? } else if (state === “ERROR”) { var […]