;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

11 receitas de refogados deliciosos para combinar com arroz e feijão

Frango em cubos com abacaxi: opção para colocar no prato com a duplinha clássica - Divulgação
Frango em cubos com abacaxi: opção para colocar no prato com a duplinha clássica Imagem: Divulgação

De Nossa

13/09/2021 04h00

O típico arroz e feijão pode ganhar "misturas" que vão além do bife grelhado. Os refogados, por exemplo, misturam carnes picadas, moídas ou desfiadas a legumes e ervas, dando mais sabor e variedade para os pratos do dia a dia.

Cheios de sustância, eles também são uma mão na roda para fazer render e dar cara nova às sobras do dia anterior.

As versões vegetarianas, compostas por vegetais e cogumelos e bem temperadas, são bem-vindas no "PF" de quem é mais carnívoro.

Selecionamos 11 receitas diferentes, que usam do franguinho de sempre ao fígado (para agradar o bolso).

Confira as opções abaixo e clique no módulo que fizer abrir o seu apetite para conferir a receita completa:

Carne moída

Dificuldade Fácil
5 porções
25 min
Ver receita completa

Frango em cubos com abacaxi

Dificuldade Fácil
4 porções
40 min
Ver receita completa

Linguiça na Cachaça

1 porções
60 min
Ver receita completa

Frango em cubos refogado

Dificuldade Fácil
10 porções
Ver receita completa

aço de legumes com shimeji

Dificuldade Médio
10 porções
60 min
Ver receita completa

Frango caprese

Dificuldade Fácil
2 porções
Ver receita completa

Picadinho vegetariano

Dificuldade Médio
3 porções
50 min
Ver receita completa

Picadinho de ponta de faca

Dificuldade Fácil
4 porções
20 min
Ver receita completa

Faça o boteco em casa com uma receita de isca de fígado acebolado

1 porções
Ver receita completa

Salteado de carne com Brócolis

2 porções
20 min
Ver receita completa

Stir fry de frango (à moda chinesa)

Dificuldade Fácil
2 porções
Ver receita completa

Extra! Alho ou cebola: qual entra primeiro no refogado?

Refogado de alho e cebola: pontapé para outras preparações - Getty Images - Getty Images
Refogado de alho e cebola: pontapé para outras preparações
Imagem: Getty Images

Segundo a cozinheira Heloísa Bacellar, do site Na Cozinha da Helô, a ordem de entrada na a está relacionada com a umidade (quantidade de água) do alimento.

Cebola, salsão, pimentão e alho-poró, que são mais úmidos, devem ser colocados antes de outros ingredientes, como alho e cenoura.

Se a gente colocar o alho junto com a cebola, o alho vai queimar".

"Não precisa esperar a cebola dourar, mas quando tiver perdido o aspecto de cebola crua, pode adicionar o alho".

Se você for do tipo apressadinho e quiser adiantar as etapas, coloque um pouco de sal junto com a cebola. Assim, ela vai desidratar com mais rapidez e o alho aguardará menos tempo na bancada.