O desenvolvimento front-end envolve a criação dos aspectos visuais e interativos de um site ou aplicativo que os usuários veem e com os quais interagem.
Garantir que seu código de front-end seja otimizado, sustentável e siga os padrões do setor é essencial para criar uma experiência de usuário perfeita. Aqui estão algumas práticas recomendadas a serem lembradas ao trabalhar em projetos de front-end:
div
para representar um cabeçalho, você pode usar a tag header
. Isso dá mais significado ao conteúdo e facilita a interpretação dos leitores de tela. <!-- Not semantic --> <div class="header"> <h1>Welcome to my website</h1> </div> <!-- Semantic --> <header> <h1>Welcome to my website</h1> </header>
/* Css */ .btn { color: #ffffff; background-color: #000000; font-size: 16px; border-radius: 5px; } /* Sass */ $primary-color: #000000; $secondary-color: #ffffff; $font-size: 16px; $border-radius: 5px; .btn { color: $secondary-color; background-color: $primary-color; font-size: $font-size; border-radius: $border-radius; }
<!-- Not using a CDN --> <script src="/scripts/jquery.js"></script> <!-- Using a CDN --> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js"></script>
<img src="compressed-image.jpg" alt="A compressed image" loading="lazy">
srcset
e de sizes
na tag img
. <img srcset="image-small.jpg 500w, image-medium.jpg 1000w, image-large.jpg 1500w" sizes="(max-width: 500px) 500px, (max-width: 1000px) 1000px, 1500px" src="image-large.jpg" alt="An image" >
<svg width="200" height="200"> <circle cx="100" cy="100" r="50" fill="#000000" /> </svg>
background-position
em CSS. Isso pode reduzir o número de solicitações HTTP necessárias para carregar as imagens, melhorando o desempenho. .icon1 { background-image: url('icons.png'); background-position: 0 0; } .icon2 { background-image: url('icons.png'); background-position: -20px 0; }
Aderir aos princípios de acessibilidade ajuda a tornar seu site mais inclusivo e fácil de usar para pessoas com deficiência. Isso pode ser obtido por meio de técnicas como fornecer texto alternativo para imagens, usar uma estrutura de cabeçalho adequada e adicionar rótulos de formulário adequados.
aria-label
fornece um rótulo para um elemento que não possui um rótulo visível. Isso pode ser útil para elementos como botões ou ícones que não possuem rótulos de texto. <button aria-label="Search"><i class="search"></i></button>
aria-required
fornece indica os campos obrigatórios do formulário. O atributo aria-required
pode ser usado para indicar que um campo de formulário é obrigatório. Isso pode ajudar a alertar usuários e tecnologias assistivas de que o campo deve ser preenchido para enviar o formulário. <label for="name">Name</label> <input type="text" id="name" name="name" required aria-required="true">
aria-hidden
permite ocultar um elemento de tecnologias assistivas. Isso pode ser útil para elementos decorativos que não transmitem informações importantes. <img src="decorative.jpg" alt="" aria-hidden="true">
aria-expanded
permite indicar o estado de um elemento recolhível. O atributo aria-expanded
pode ser usado para indicar se um elemento recolhível, como um menu suspenso, está atualmente expandido ou recolhido. Isso pode ajudar a alertar usuários e tecnologias assistivas sobre o estado atual do elemento. <button aria-expanded="false" aria-controls="menu">Menu</button> <ul id="menu" aria-hidden="true"> <li>Option 1</li> <li>Option 2</li> <li>Option 3</li> </ul>
aria-live
para anunciar atualizações de conteúdo. O atributo aria-live
pode ser usado para indicar que o conteúdo de um elemento pode ser atualizado de forma assíncrona. Isso pode ser útil para anunciar atualizações de conteúdo, como novas mensagens ou notificações, para tecnologias assistivas. <div id="notifications" aria-live="polite"> <p>You have 1 new message</p> </div>
aria-describedby
permite fornecer uma descrição de um elemento. O atributo aria-describedby
pode ser usado para especificar um elemento que fornece uma descrição para o elemento atual. Isso pode ser útil para fornecer contexto adicional ou instruções para campos de formulário ou outros elementos interativos. <label for="email">Email address</label> <input type="email" id="email" name="email" aria-describedby="email-description"> <p id="email-description">Please enter your email address</p>
JavaScript é uma linguagem de programação poderosa e flexível, mas também pode consumir muitos recursos. Portanto, é importante otimizar seu código JavaScript para garantir que ele seja executado com eficiência e não afete o desempenho geral do seu site ou aplicativo.
Aqui estão algumas dicas para otimizar o desempenho do JavaScript:
Evite bloquear o thread principal : o thread principal é responsável por lidar com as interações do usuário e renderizar a página, por isso é importante evitar bloqueá-lo com tarefas de execução longa ou com uso intensivo de recursos. Em vez disso, considere usar web workers ou funções assíncronas para descarregar essas tarefas em outros threads.
A divisão de código permite dividir o código JavaScript em partes menores que podem ser carregadas sob demanda. Isso pode melhorar o desempenho reduzindo a quantidade de código que precisa ser carregado e analisado inicialmente. Você pode usar ferramentas como Webpack ou Rollup para implementar a divisão de código.
O carregamento lento permite atrasar o carregamento do conteúdo até que seja necessário. Isso pode melhorar o desempenho reduzindo a quantidade de dados que precisam ser carregados inicialmente. Você pode usar a API IntersectionObserver
para implementar o carregamento lento.
// Lazy loading with IntersectionObserver const observer = new IntersectionObserver((entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { // Load content observer.unobserve(entry.target); } }); }); document.querySelectorAll('[data-lazy]').forEach((element) => { observer.observe(element); });
Cache API
para implementar o armazenamento em cache. if ('caches' in window) { caches.open('my-cache').then((cache) => { cache.add('/data.json').then(() => { console.log('Data added to cache'); }); }); }
Ferramenta de monitoramento de desempenho : uma ferramenta de monitoramento de desempenho permite rastrear o desempenho do site e identificar possíveis problemas. Isso pode ajudar a otimizar o desempenho do site e melhorar a experiência do usuário. Algumas ferramentas populares incluem Lighthouse e SpeedCurve.
Ferramenta Linting: Como o ESLint, verifica o código em busca de erros e sugere melhorias, ajudando a garantir que o código seja consistente e siga as melhores práticas.
O desenvolvimento front-end envolve uma ampla gama de práticas e técnicas que podem ajudar a melhorar o desempenho e a experiência do usuário de um site.
Algumas das práticas recomendadas que você pode seguir incluem a otimização de imagens e outros recursos, seguindo os princípios de acessibilidade e otimização de JavaScript. Seguindo essas práticas recomendadas, você pode criar sites de alta qualidade e bom desempenho que proporcionam uma ótima experiência ao usuário.