Prefácio
Muitas pessoas, ao começar no front-end, geralmente começam “copiando e colando”: memorizam tags, decoram propriedades, copiam componentes, rodam um scaffold e pronto. No início, parece que até dá para montar algumas páginas, mas quanto mais se avança, mais tudo fica pesado — ao ver exemplos de outras pessoas parece que está tudo claro, mas ao tentar escrever do zero não se sabe por onde começar; e, ao encontrar um bug, então, não há a menor ideia do que fazer.
Isso acontece porque a verdadeira dificuldade muitas vezes não é “não conseguir escrever código”, e sim “não entender o código”.
Tente se perguntar as seguintes questões:
- Por que, ao digitar uma URL, a página consegue aparecer?
- O que HTML, CSS e JS passam a fazer dentro do navegador, respectivamente?
- Por que existem reflow (refluxo) e repaint (repintura)?
- Por que às vezes o
thisaponta para um lugar tão estranho? - Por que
Promise.thenexecuta antes desetTimeout? - Por que o
nextTickdo Vue consegue obter o DOM depois da atualização? - Por que, no React, o
keynão pode ser escrito de qualquer jeito? - Por que, quando o projeto cresce, o build fica lento a ponto de irritar?
Essas perguntas parecem soltas, mas por trás delas existe um sistema rigoroso de conhecimentos de front-end Web. O desenvolvimento front-end é uma prática de engenharia composta por várias linhas: navegador, protocolos de rede, mecanismos da linguagem, renderização de páginas, engenharia (tooling), ideias de framework, otimização de performance, etc.
Este artigo tem o objetivo de ajudar você a romper a armadilha de “ver as árvores, mas não ver a floresta”. Vou tentar conectar, do simples ao profundo, os principais fios de baixo nível do front-end, para que você reconheça de novo o que é, de fato, o front-end.
I. O que exatamente o front-end faz
1. O que é a Web
A Web, essencialmente, é um sistema baseado na internet para transmissão de informações, acesso a recursos e interação. As pessoas acessam páginas pelo navegador; o navegador solicita recursos ao servidor; o servidor devolve HTML, CSS, JavaScript, imagens, áudio e vídeo; e então o navegador analisa e renderiza esses recursos no que vemos na tela.
O ecossistema de front-end Web, na prática, se organiza em torno de 6 etapas centrais:
- Localização de recursos: encontrar recursos via URL
- Comunicação em rede: transmitir recursos via HTTP/HTTPS
- Descrição de conteúdo: descrever estrutura com HTML
- Apresentação visual: controlar aparência com CSS
- Interação e comportamento: implementar lógica com JavaScript
- Renderização do navegador: transformar código em uma interface visível e interativa
Desenvolvimento front-end é “a parte do sistema que o usuário consegue ver e com a qual consegue interagir diretamente”.
2. Do que uma página web é feita
Uma página web básica normalmente contém três partes:
- HTML: estrutura. O que existe na página.
- CSS: apresentação. Como a página parece.
- JavaScript: comportamento. O que acontece na página.
Dá para entender com uma analogia simples:
- HTML é como as vigas e paredes (estrutura) de uma casa
- CSS é como a decoração, iluminação, cores e layout
- JavaScript é como o sistema elétrico, o controle de portas, botões e automação
As três juntas compõem a página front-end.
3. O que é um navegador
Um navegador não é apenas “um software para buscar páginas” — ele é, na essência, um ambiente de execução complexo, que pelo menos assume estas responsabilidades:
- Fazer requisições de rede
- Analisar HTML / CSS / JavaScript
- Construir a árvore DOM e a árvore CSSOM
- Gerar a árvore de renderização e completar layout e pintura
- Executar código JavaScript
- Manter o event loop, timers e callbacks de rede
- Fornecer várias Web APIs, como
localStorage,fetch,history,canvas
Navegadores comuns incluem:
- Chrome
- Edge
- Firefox
- Safari
- Opera
4. O que é o “motor” do navegador
O “motor” do navegador normalmente se refere às partes relacionadas ao motor de renderização e ao motor de JavaScript. No desenvolvimento front-end, quando se fala em motor, em geral é sobre como ele analisa a página e executa o código.
Motores comuns:
- Blink: usado por Chrome, Edge, Opera e outros navegadores baseados em Chromium
- WebKit: usado pelo Safari
- Gecko: usado pelo Firefox
- Trident: usado por versões antigas do Internet Explorer
Historicamente, muitos “problemas de compatibilidade” são, na verdade, diferenças no quanto cada motor suporta os padrões.
5. Por que existem padrões Web
Sem um padrão unificado, cada navegador faria sua própria implementação. Uma página poderia funcionar no Chrome, quebrar no Firefox e ter outro comportamento no Safari.
Por isso existem organizações como W3C e WHATWG, que impulsionam o desenvolvimento de padrões como HTML, CSS, DOM, URL e Fetch.
A utilidade de padrões Web é bem prática:
- Reduzir custo de compatibilidade
- Facilitar manutenção
- Permitir acesso por diferentes dispositivos
- Tornar o conteúdo mais compreensível para buscadores
- Dar regras comuns para colaboração em engenharia
Hoje, ao escrever front-end, ter consciência de padrões é muito importante — porque muitos problemas não são “isso roda?”, e sim “isso é correto, estável e fácil de manter?”.
II. Ambiente de desenvolvimento front-end e ferramentas básicas
1. Do que você precisa no mínimo
Para iniciar no front-end, o conjunto mais básico costuma ser:
- Um computador
- Um navegador (recomendado: Chrome)
- Um editor de código (recomendado: VS Code)
- Um servidor estático local ou ferramenta de desenvolvimento
Se for apenas HTML e CSS, navegador + editor já bastam. Mas, quando entram modularização em JavaScript, npm, ferramentas de build e desenvolvimento com frameworks, você precisa de um ambiente Node.js.
2. Por que o editor é importante
Em projetos front-end há muitos arquivos e uma estrutura complexa; o editor não é só um “bloco de notas para escrever código”. Um bom editor afeta diretamente a produtividade.
Vantagens comuns do VS Code:
- Ecossistema de extensões
- Integração prática com Git
- Depuração forte
- Suporte muito completo ao ecossistema front-end
- Quase um padrão de fato em colaboração
Ideias comuns de extensões:
- Formatação de código
- Destaque de sintaxe
- Sugestões de caminho
- ESLint / Stylelint
- Indicação de mudanças do Git
- Auto-refresh do navegador
3. Aprenda cedo as ferramentas de desenvolvedor do navegador
Muita gente iniciante faz só “mudar código -> atualizar página -> ver resultado”. Isso é lento e ineficiente.
As DevTools são obrigatórias; no mínimo, é preciso se familiarizar com:
- Elements: ver e depurar DOM / CSS
- Console: rodar JS, ver erros, imprimir logs
- Network: ver requisições, status, tempo de resposta e cache
- Sources: debug com breakpoints
- Application: cookies, storage, cache
- Performance: analisar gargalos
Para evoluir em front-end, capacidade de depuração é extremamente importante.
III. HTML: a base da estrutura da página
1. O que é HTML
HTML significa HyperText Markup Language (Linguagem de Marcação de Hipertexto). Não é uma linguagem de programação, e sim uma linguagem de marcação para descrever a estrutura de um documento.
“HyperText” tem dois sentidos:
- não é só texto: também carrega imagens, áudio/vídeo, formulários etc.
- permite pular de uma página para outra via hiperlinks
A missão central do HTML é descrever “o que existe” na página.
2. Estrutura mais básica de uma página HTML
Uma página HTML moderna normalmente se parece com isto:
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>一只喵博客</title>
</head>
<body>
页面内容
</body>
</html>Pontos-chave:
<!doctype html>: diz ao navegador para analisar em modo padrão do HTML5<html>: elemento raiz<head>: metadados (não exibidos diretamente)<body>: corpo da página (a maior parte do que a pessoa vê)<meta charset="UTF-8">: define codificação para evitar caracteres corrompidos<meta name="viewport">: configuração base para adaptação em mobile
3. Tags e elementos HTML
Uma página HTML é composta por várias tags. Elas podem ser:
- Tags duplas: têm início e fim, como
<p></p> - Tags únicas/autofechadas: como
<img>,,<input>
Tag + conteúdo + atributos formam um elemento.
Exemplo:
<a href="/about" target="_blank">关于一只喵博客</a>Aqui:
aé o nome da taghrefetargetsão atributos关于我们é o conteúdo- o conjunto é um elemento de link
4. Semântica em HTML
Muita gente iniciante enche tudo de div. Funcionar, funciona — mas isso não é “bem escrito”.
Semântica significa usar a tag certa para expressar a estrutura e o significado certo.
Por exemplo:
- títulos:
h1~h6 - parágrafos:
p - navegação:
nav - conteúdo do artigo:
article - conteúdo principal:
main - cabeçalho/rodapé:
header,footer - listas:
ul/ol - botões: priorizar
button
Vantagens:
- estrutura mais clara
- manutenção mais fácil
- melhor SEO
- melhor acessibilidade
- colaboração em equipe mais tranquila
Um princípio simples: pense primeiro no significado da tag, e depois no estilo.
5. Visão geral de tags comuns
Títulos e parágrafos
<h1>主标题</h1>
<p>这是一个段落。</p>h1 costuma ser o título mais importante; não é obrigatório existir apenas um, mas convém usar com moderação.
Links e imagens
<a href="https://example.com">访问一只喵博客</a>
<img src="avatar.jpg" alt="易喵的头像"/>O alt é muito importante: ele serve como descrição alternativa e ajuda em acessibilidade e SEO.
Listas
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
</ul>Menus, listas de notícias e comentários são ótimos casos de uso.
Tags contêiner
<div></div>
<span></span>Não têm semântica; são contêineres genéricos. div costuma ser usado para layout em bloco e span para embrulho inline.
Tabelas
Tabelas são boas para dados, não para layout.
<table>
<caption>一只喵博客前端学习名单</caption>
<thead>
<tr>
<th>姓名</th>
<th>分数</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>95</td>
</tr>
</tbody>
</table>Formulários
Formulários são a porta de entrada de interação.
<form action="/login" method="post">
<label for="username">用户名</label>
<input id="username" name="username" type="text" placeholder="请输入一只喵博客账号"/>
<label for="password">密码</label>
<input id="password" name="password" type="password"/>
<button type="submit">登录</button>
</form>Na prática, formulários são um tema grande.
6. Caminhos e referências de recursos
Existem duas formas comuns:
- Caminho relativo
- Caminho absoluto
Exemplos:
<img src="./images/logo.png" alt="logo"/>
<img src="../assets/banner.jpg" alt="banner"/>7. Comentários, entidades de caracteres e boas práticas
Comentários:
<!-- 这是注释 -->Entidades comuns:
<representa<>representa> representa espaço&representa&
Boas práticas:
- nomes de tags/atributos em minúsculas
- indentação
- valores de atributos entre aspas
- estrutura clara
- evitar abuso de tags sem semântica
IV. CSS: por que a página fica bonita
1. O que é CSS
CSS significa Cascading Style Sheets (Folhas de Estilo em Cascata). Controla a aparência, por exemplo:
- fontes
- cores
- espaçamentos
- bordas
- layout
- animações
- responsividade
Se HTML responde “o que existe”, CSS responde “como parece”.
2. Três formas de incluir CSS
Inline
<p style="color: red;">你好,一只喵博客</p>Interno
<style>
p {
color: red;
}
</style>Externo
<link rel="stylesheet" href="style.css"/>Em projetos reais, quase sempre se recomenda o CSS externo.
3. Seletores
O núcleo do CSS é “selecionar elementos e aplicar estilos”.
Exemplos comuns:
/* 一只喵博客:seletor por tag */
p {}
/* seletor por classe */
.card {}
/* seletor por ID */
#app {}
/* seletor descendente */
.nav a {}
/* seletor de filho */
.list > li {}
/* pseudo-classe */
a:hover {}
/* seletor de atributo */
input[type="text"] {}Não é sobre ser complexo; é sobre ser claro e sustentável.
4. Especificidade
Quando várias regras atingem o mesmo elemento, o navegador decide qual prevalece.
Ordem geral:
!important- inline
- ID
- classe/atributo/pseudo-classe
- tag/pseudo-elemento
- curinga/herança/estilo padrão
Na prática, é melhor controlar complexidade e organização do que “empilhar especificidade”.
5. Modelo de caixa
Quase todo elemento pode ser entendido como uma caixa: content, padding, border e margin.
No modelo padrão, width conta apenas o content.
.box {
width: 200px;
padding: 20px;
border: 10px solid #333;
margin: 16px;
}Com box-sizing: border-box;, width passa a incluir padding e border:
* {
box-sizing: border-box;
}6. display e tipos de elemento
Tipos comuns:
blockinlineinline-blocknoneflexgrid
div é bloco por padrão; span é inline.
7. position
static
Padrão.
relative
Desloca em relação à posição original.
absolute
Relativo ao ancestral posicionado mais próximo; se não houver, ao viewport/bloco inicial.
fixed
Relativo à janela do navegador.
sticky
Antes de um limiar de rolagem, como elemento normal; depois “gruda” como fixed.
8. float e limpeza de float
Hoje, float é mais usado para texto contornar imagens, mas entender ajuda em projetos antigos. Como float sai do fluxo normal, o pai pode colapsar em altura, então costuma-se limpar:
.clearfix::after {
content: "";
display: block;
clear: both;
}9. O que é BFC
BFC (Block Formatting Context) é um “ambiente de layout” independente.
Disparadores comuns:
- elemento raiz
float!=noneposition: absolute/fixedoverflow!=visibledisplay: inline-block/table-cell/flex/grid
Usos:
- limpar float
- evitar colapso de margin
- evitar contorno de texto
10. Layout Flex
.container {
display: flex;
justify-content: center;
align-items: center;
}11. Layout Grid
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16px;
}12. Layout responsivo
Estratégias comuns:
- porcentagem
remvw/vh- media queries
@media - Flex / Grid
Exemplo:
@media (max-width: 768px) {
.sidebar {
display: none;
}
}13. Reflow e repaint
Reflow (refluxo)
Quando a geometria muda e o navegador recalcula layout.
Repaint (repintura)
Quando só a aparência muda.
Conclusões:
- reflow sempre causa repaint
- repaint não necessariamente causa reflow
Otimização:
- agrupar mudanças de estilo
- evitar leitura/escrita frequente de propriedades de layout
- usar
transform/opacitypara animação
14. Animações e transições
transition
.button {
transition: transform 0.3s ease;
}
.button:hover {
transform: translateY(-2px);
}animation + keyframes
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}V. JavaScript: fazer a página “ganhar vida”
1. O que é JavaScript
JavaScript é a linguagem central do front-end Web. Começou como linguagem de scripts no navegador, e hoje também é base para Node.js, ferramentas de engenharia, apps desktop e mobile.
No front-end, JavaScript é responsável por:
- manipular DOM
- responder a eventos
- enviar requisições
- processar dados
- controlar estado
- dirigir componentes e frameworks
2. Tipos primitivos e tipos por referência
Primitivos comuns:
numberstringbooleanundefinednullsymbolbigint
Tipos por referência são principalmente objetos:
ObjectArrayFunctionDateRegExp
Entender valor vs referência é essencial para atribuição, parâmetros, cópia e comparação.
3. Como detectar tipos
typeof
typeof 1; // 'number'
typeof 'abc'; // 'string'
typeof true; // 'boolean'
typeof undefined; // 'undefined'
typeof function(){}; // 'function'
typeof null; // 'object'instanceof
[] instanceof Array; // true
{} instanceof Object; // trueObject.prototype.toString.call
Object.prototype.toString.call([]); // [object Array]
Object.prototype.toString.call(null); // [object Null]4. Declaração de variáveis: var, let, const
var
- escopo de função
- hoisting
- permite redeclaração
varglobal vai parawindow
let
- escopo de bloco
- temporal dead zone
- não permite redeclaração
const
- escopo de bloco
- precisa inicializar
- não pode reatribuir
Recomendação moderna:
- prefira
const - use
letquando precisar reatribuir - evite
var
5. Escopo e cadeia de escopos
Escopo define onde variáveis e funções são acessíveis.
Quando não encontra no escopo atual, o JS procura para cima no escopo léxico.
Isso é base para closures, this, módulos e contexto de execução.
6. Closure
Uma closure é o resultado natural do escopo léxico: uma função pode “lembrar” e acessar variáveis do escopo onde foi definida, mesmo depois que a função externa terminou.
function outer() {
let articleCount = 0;
return function inner() {
articleCount++;
return articleCount;
};
}
const nextArticle = outer();
nextArticle(); // 1
nextArticle(); // 27. this
this é decidido no momento da chamada (exceto arrow functions).
Casos comuns:
- chamada direta: em modo não estrito,
window; em estrito,undefined - método de objeto: o objeto chamador
- construtor: a instância
- call/apply/bind: o objeto especificado
- arrow: herda
thisléxico
8. Protótipos e cadeia de protótipos
JS herda por protótipo. Se não encontra uma propriedade no objeto, busca na cadeia.
9. O que o new faz
- cria novo objeto
- liga o protótipo
- executa a função construtora com
thisno novo objeto - retorna o objeto retornado (se houver) ou o novo objeto
10. Arrays, objetos e métodos comuns
Métodos de array:
push/popshift/unshiftmapfilterreducefindsome/everyforEachsortslice/splice
Operações com objeto:
- leitura/escrita
Object.keysObject.valuesObject.entriesObject.assign- spread
...
11. DOM e BOM
DOM
Modelo de objetos do documento.
BOM
Modelo de objetos do navegador.
Objetos comuns:
windowlocationhistorynavigatorscreenlocalStorage
12. Mecanismo de eventos
Fluxo:
- captura
- alvo
- bolha
Exemplo:
element.addEventListener('click', handler);13. Throttle e debounce
Debounce
Executa apenas a última chamada após um período de silêncio.
Throttle
Executa no máximo uma vez por janela de tempo.
VI. Assíncrono, Promise e event loop: a parte em que mais gente trava
1. Por que existe assíncrono
Se tudo fosse síncrono no thread principal, a página travaria facilmente.
Por isso existe o event loop.
2. Síncrono vs assíncrono
Síncrono
Executa linha por linha.
Assíncrono
Agenda tarefas sem bloquear, e executa callbacks quando prontas.
3. Macro-tarefas e micro-tarefas
Macro:
setTimeoutsetIntervalscript- I/O
- eventos UI
Micro:
Promise.then/catch/finallyqueueMicrotaskMutationObserver
Ordem típica:
- executar código síncrono
- esvaziar fila de microtarefas
- executar uma macrotarefa
- esvaziar microtarefas
4. Promise
Promise representa o resultado futuro de uma operação assíncrona.
Estados:
pendingfulfilledrejected
Métodos:
thencatchfinallyPromise.allPromise.racePromise.allSettledPromise.any
5. async/await
Açúcar sintático sobre Promise.
async function getData() {
const blogUser = await fetchUser();
const articles = await fetchPosts(blogUser.id);
return { blogUser, articles };
}6. Diferenças entre timers, Promise e async/await
setTimeoutagenda macrotarefasPromise.thené microtarefaasync/awaité baseado em Promise
VII. HTTP, HTTPS e fundamentos de rede: por que a página consegue pedir dados
1. O que é HTTP
HTTP é o protocolo para transmitir recursos entre cliente e servidor.
É stateless, então usa Cookie/Session/Token para manter estado.
2. O que é HTTPS
HTTPS = HTTP + camada TLS/SSL.
Adiciona:
- criptografia
- autenticação
- integridade
3. Diferenças entre HTTP e HTTPS
- HTTP é texto puro; HTTPS é criptografado
- porta 80 vs 443
- HTTPS exige certificado
- handshake mais caro
4. Processo geral do HTTPS
- cliente faz requisição
- servidor devolve certificado
- cliente valida
- negociam algoritmo e chave de sessão
- comunicação criptografada
5. URL, request e response
Um URL costuma conter:
- protocolo
- domínio
- porta
- caminho
- query
- hash
6. Métodos HTTP comuns
GETPOSTPUTPATCHDELETEOPTIONS
7. Status codes comuns
2xx, 3xx, 4xx, 5xx.
8. Cache
Cache forte
Cache-ControlExpires
Cache negociado
ETag/If-None-MatchLast-Modified/If-Modified-Since
9. Cookie, localStorage, sessionStorage
Diferenças: local, vida útil e se vai automaticamente em requests.
10. O que é cross-origin
Política de mesma origem: protocolo, domínio e porta.
Cross-origin não impede o request, e sim a leitura da resposta pelo script.
11. Soluções para cross-origin
- CORS
- proxy
- JSONP
- postMessage
VIII. TCP, UDP e de digitar a URL até ver a página
1. TCP vs UDP
TCP é confiável e orientado a conexão; UDP é rápido, sem garantia.
2. Three-way handshake do TCP
- cliente SYN
- servidor SYN+ACK
- cliente ACK
3. Four-way handshake (encerramento)
Quatro passos para ambos confirmarem encerramento.
4. Como o TCP garante confiabilidade
- segmentação e numeração
- ACK
- retransmissão
- checksum
- janela deslizante
- controle de fluxo
- controle de congestionamento
5. Do URL ao carregamento completo
Fluxo simplificado:
- digitar URL
- checar cache
- DNS
- TCP
- TLS (se HTTPS)
- request HTTP
- response
- parse HTML
- baixar/parse CSS -> CSSOM
- baixar/executar JS
- construir DOM
- render tree
- layout
- paint
- continuar recursos assíncronos etc.
IX. Renderização do navegador: por que a página aparece
1. DOM e CSSOM
HTML vira DOM; CSS vira CSSOM; juntos viram render tree.
2. Render tree != DOM
display:none não entra, por exemplo.
3. Layout e Paint
Layout calcula geometria; Paint desenha pixels.
4. Por que JS bloqueia parsing
Scripts podem mexer no DOM, então o navegador pausa para manter a ordem.
Estratégias:
defer
async
5. Por que performance de primeira tela importa
Usuários só se importam com “é rápido?”.
X. Formulários, validação e entrada do usuário
1. Por que formulários importam
Sites de verdade precisam de login, busca, comentários etc.
2. Elementos comuns
inputtextareaselectoptionbuttonlabelform
3. Tipos comuns de input
textpasswordemailnumberradiocheckboxfilesubmitresetdate
4. Por que label é importante
Aumenta área clicável e acessibilidade.
5. Formas de envio
GET/POST, e hoje via JS com fetch/axios.
6. Validação front-end vs back-end
Front ajuda UX, mas não substitui back-end.
XI. Otimização de performance no front-end
1. O que otimizar
- carregamento
- primeira tela
- responsividade
- animações
- tamanho de recursos
- número de requests
- re-renderizações
2. Direções comuns
Rede, recursos, renderização e código.
3. Técnicas comuns para primeira tela
- SSR/SSG
- skeleton
- CSS crítico
- lazy load
- delay de scripts
- code splitting
- preload
4. Ferramentas de análise
- Chrome Performance
- Lighthouse
- Network
- Web Vitals
XII. Armazenamento, cache e offline
1. Como escolher storage
localStoragesessionStorageIndexedDB
2. O que é Service Worker
Uma camada programável entre navegador e rede.
XIII. Git e colaboração
1. Por que front-end precisa de Git
Versionamento, colaboração, rollback e merge.
2. Comandos comuns
git initgit clonegit addgit commitgit statusgit loggit branchgit checkoutgit switchgit mergegit pullgit push
3. Modelos de branch
main/develop/feature/release/hotfix.
XIV. Modularização e engenharia
1. Por que modularizar
Evita poluição global, dependências confusas e melhora manutenção.
2. Evolução
IIFE, CommonJS, AMD/CMD, ES Module.
3. Por que ferramentas de build
Empacotar, transformar, compatibilidade, otimizar.
4. O que Webpack faz
Do(s) entry(s), rastreia dependências e gera bundles.
5. Ideias de otimização
include/exclude, cache, multithread, minificação, tree shaking, split.
6. O que é Babel
Compilador JS (AST transform).
7. Por que Vite é popular
Usa ESM nativo em dev para startup rápido.
XV. Node.js, npm e ecossistema
1. Por que aprender Node.js
Tooling depende de Node.
2. O que é npm
Gerenciador de pacotes.
3. Conteúdo comum do package.json
XVI. Introdução ao Vue
1. Por que frameworks
Organizar UI e estado.
2. Ideias centrais
Dados dirigem a view.
3. Capacidades
Template, render condicional, lista, eventos, binding, computed, watch, componentes, lifecycle, state, router.
4. O que é componentização
Unidade de UI reutilizável.
5. Por que lifecycle importa
Controlar efeitos colaterais.
6. computed vs watch
7. Por que nextTick
DOM atualiza em batch assíncrono.
8. keep-alive, mixin, Vuex
XVII. Introdução ao React
1. Ideias centrais
2. JSX
3. Funções vs classes
4. Significado de Hooks
5. useEffect e efeitos
6. Por que key importa
7. Por que setState parece sync/async
8. O que é Fiber
XVIII. Roteamento, gerenciamento de estado e SPA
1. O que é SPA
2. Princípio do roteamento
3. Por que state management
XIX. Segurança no front-end
1. XSS
2. CSRF
3. Por que front-end deve saber de segurança
XX. Adaptação mobile e multi-dispositivos
1. Por que mobile difere
2. Ideias comuns
3. viewport
4. Observações
XXI. Como estudar front-end de forma sistemática
1. Sequência de estudo
2. Armadilhas
3. Habilidades mais importantes
Transformar conhecimento espalhado em um sistema
A tecnologia de front-end Web evolui rápido, mas o fio central é claro:
- HTML descreve estrutura
- CSS controla aparência
- JavaScript lida com lógica e interação
- o navegador vira interface
- HTTP troca recursos
- engenharia organiza
- frameworks aumentam produtividade
- performance, segurança e normas fazem o projeto “dar certo”
Aprender programação, o maior tabu é “tocar o elefante no escuro”. O que realmente diferencia é construir o seu mapa mental global de conhecimento: saber onde cada ponto se encaixa, que problema resolve e como se conecta.
Se comparar front-end a um prédio: base é alicerce, frameworks são o meio, engenharia e performance são a estrutura, e a prática em projetos é o uso diário.
Primeiro firme o alicerce; depois construa para cima — assim fica difícil “desabar no meio do caminho”.