Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Esconder elementos ou não renderizar ?

Boa tarde, Estou com uma duvida sobre qual a maneira correta em resolver o seguinte problema.

Tenho um gráfico que aparece na versão desktop porem queria fazer para quando o usuário acessar pelo celular o gráfico sumir.

Pesquisando achei duas maneiras.

1- Usar os atributos .d-sm-none .d-md-block (Bootstrap) Dessa forma funciona, quando acessado por uma resolução que determinei, ele esconde. Porem se eu abrir o console do desenvolvedor pelo Chrome e olhar ele esta la, porem invisível na interface.

Resolve o problema, porem fico com uma duvida, ele fica apenas invisível mas é renderizado, ou seja o navegador gasta processamento nele renderizando mas o deixa oculto? ou ele não é nem renderizado ? Podendo colocar outros Formulários que iram desconsiderar em questão de espaçamento.

2- Utilizar o window.innerWidth e window.innerHeight (JavaScript) Dessa forma eu consigo colocar para renderizar se a tela do usuário for maior que X e Y

     var w = window.innerWidth;
        var h = window.innerHeight;
        if(h >= 1280 || w >= 720 ){
            return(
                <div>
                    //Codigo..
                </div>
            );
        }

Obs: Estou usando o React e Bootstrap.

2 respostas
solução!

Fala Denis,

Tranquilo?

Então, essa é uma questão bem interessante, vamos considerar o seguinte cenário, ele tem uma tela que não atinge o limite para renderizar o componente, mas ele tem uma outra tela no mesmo computador que tem o tamanho para renderizar, ao jogar a página de uma tela para outra, qual é o resultado que você quer que o usuário tenha? que ele continue não vendo? ou que já apareça o gráfico?

Se for um recurso simples que não consuma muito recurso de banco e etc, não vejo problema em apenas esconder, mas se for algo que consome muito recurso, pode ser que a estratégia de renderizar apenas em dispositivos com tamanho XY seja melhor.

Abraços!

Obrigado Luiz, o/

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software