<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ivamar Júnior</title>
    <description>The latest articles on DEV Community by Ivamar Júnior (@hardjunior).</description>
    <link>https://dev.to/hardjunior</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3722267%2F9b0fd10b-f89d-463c-9c42-4fda498a8a1a.jpg</url>
      <title>DEV Community: Ivamar Júnior</title>
      <link>https://dev.to/hardjunior</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hardjunior"/>
    <language>en</language>
    <item>
      <title>RoadMap Vue</title>
      <dc:creator>Ivamar Júnior</dc:creator>
      <pubDate>Tue, 20 Jan 2026 18:12:35 +0000</pubDate>
      <link>https://dev.to/hardjunior/roadmap-vue-51c9</link>
      <guid>https://dev.to/hardjunior/roadmap-vue-51c9</guid>
      <description>&lt;p&gt;Nível 0 – Pré-requisitos&lt;/p&gt;

&lt;p&gt;Antes de mergulhar no Vue, é fundamental ter uma base sólida em:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. HTML/CSS&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Estrutura de páginas, seletores CSS, Flexbox, Grid, animações básicas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Variáveis (let, const), tipos de dados, funções, arrow functions, arrays, objetos.&lt;/li&gt;
&lt;li&gt;DOM: document.querySelector, addEventListener, manipulação de elementos.&lt;/li&gt;
&lt;li&gt;ES6+: destructuring, spread/rest, template literals, módulos (import/export).&lt;/li&gt;
&lt;li&gt;Conceitos de programação reativa e assíncrona: Promises, async/await.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. NPM/Yarn e Node.js&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instalar pacotes, rodar scripts, criar projetos básicos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Git&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Versionamento, commits, branches.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 Dica: se você ainda não domina JS moderno, passe um tempo reforçando antes do Vue.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nível 1 – Conceitos básicos do Vue.js
&lt;/h2&gt;

&lt;p&gt;Objetivo: entender como Vue funciona, sem se preocupar com grandes apps ainda.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Introdução ao Vue&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O que é Vue.js e para que serve.&lt;/li&gt;
&lt;li&gt;Comparação com React e Angular (opcional, para contexto).&lt;/li&gt;
&lt;li&gt;CDN vs CLI (npm init vue@latest).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Instalação e configuração&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Criar um projeto Vue com Vite (mais rápido que Vue CLI).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Estrutura de um projeto Vue&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;main.js, App.vue, componentes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Template Syntax&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;{{ }} para interpolação.&lt;/li&gt;
&lt;li&gt;Diretivas: v-if, v-else, v-for, v-show.&lt;/li&gt;
&lt;li&gt;Eventos: v-on / &lt;a class="mentioned-user" href="https://dev.to/click"&gt;@click&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Bindings: v-bind / : e v-model.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Reatividade&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ref e reactive.&lt;/li&gt;
&lt;li&gt;Computed properties e watchers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;6. Componentes&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Criação de componentes simples.&lt;/li&gt;
&lt;li&gt;Props e comunicação pai-filho.&lt;/li&gt;
&lt;li&gt;Slots básicos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📌 Exercício: criar uma lista de tarefas (To-Do List) usando v-for, v-if e v-model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nível 2 – Vue intermediário
&lt;/h2&gt;

&lt;p&gt;Objetivo: dominar a arquitetura de aplicativos Vue.&lt;br&gt;
&lt;strong&gt;1. Componentes avançados&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Slots nomeados e scoped slots.&lt;/li&gt;
&lt;li&gt;Emissão de eventos personalizados (emit).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Composição API vs Options API&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Entender setup(), ref, reactive, computed, watch.&lt;/li&gt;
&lt;li&gt;Comparar com a Options API (data, methods, computed).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Diretivas personalizadas&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Criar v-focus, v-tooltip, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Formulários&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;v-model com objetos e arrays.&lt;/li&gt;
&lt;li&gt;Validação básica de formulários.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Eventos&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Modificadores (.prevent, .stop, .capture).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;6. Transições e animações&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;transition, transition-group.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;7. Gerenciamento de estado local&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lidar com estados dentro de componentes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;8. Roteamento&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instalar e configurar Vue Router.&lt;/li&gt;
&lt;li&gt;Rotas, rotas aninhadas, rotas dinâmicas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📌 Exercício: criar um mini blog com múltiplas páginas usando Vue Router.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nível 3 – Vue avançado
&lt;/h2&gt;

&lt;p&gt;Objetivo: criar aplicações robustas e escaláveis.&lt;br&gt;
&lt;strong&gt;1. Gerenciamento de estado global&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pinia (substituto moderno do Vuex).&lt;/li&gt;
&lt;li&gt;Criar stores, actions, getters.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Consumindo APIs&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fetch ou axios.&lt;/li&gt;
&lt;li&gt;Integração com back-end (CRUD).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Composição API avançada&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reatividade profunda, toRefs, readonly.&lt;/li&gt;
&lt;li&gt;Composables (funções reutilizáveis de lógica de estado).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Performance&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lazy loading de componentes.&lt;/li&gt;
&lt;li&gt;Suspense e async components.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Testing&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unit testing com Vue Test Utils e Jest.&lt;/li&gt;
&lt;li&gt;E2E testing com Cypress ou Playwright.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;6. Boas práticas&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Estrutura de pastas, modularização.&lt;/li&gt;
&lt;li&gt;Naming conventions.&lt;/li&gt;
&lt;li&gt;Linting com ESLint + Prettier.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📌 Exercício: criar um sistema de gerenciamento de tarefas com autenticação e persistência via API.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nível 4 – Ecossistema e ferramentas avançadas
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Vue CLI / Vite&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scripts, hot reload, configuração de plugins.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Tailwind CSS / Vuetify / BootstrapVue&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Estilização rápida e responsiva.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. SSR (Server Side Rendering)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nuxt.js (framework Vue para SSR e geração de sites estáticos).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. PWA com Vue&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Progressive Web Apps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Deploy&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Netlify, Vercel, Render, ou hospedagem própria.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📌 Exercício: criar um site estático com Nuxt.js + API externa + Tailwind.&lt;/p&gt;

&lt;h2&gt;
  
  
  Roadmap visual simplificado
&lt;/h2&gt;

&lt;p&gt;Pré-requisitos&lt;br&gt;
│&lt;br&gt;
├─ HTML/CSS&lt;br&gt;
├─ JavaScript moderno&lt;br&gt;
├─ Node/NPM&lt;br&gt;
└─ Git&lt;/p&gt;

&lt;p&gt;Nível 1: Básico&lt;br&gt;
│&lt;br&gt;
├─ Vue CDN / CLI&lt;br&gt;
├─ Template syntax&lt;br&gt;
├─ Reatividade&lt;br&gt;
└─ Componentes básicos&lt;/p&gt;

&lt;p&gt;Nível 2: Intermediário&lt;br&gt;
│&lt;br&gt;
├─ Componentes avançados&lt;br&gt;
├─ Composição API&lt;br&gt;
├─ Diretivas custom&lt;br&gt;
├─ Forms e eventos&lt;br&gt;
├─ Transições&lt;br&gt;
└─ Vue Router&lt;/p&gt;

&lt;p&gt;Nível 3: Avançado&lt;br&gt;
│&lt;br&gt;
├─ Pinia / Vuex&lt;br&gt;
├─ API integration&lt;br&gt;
├─ Composables&lt;br&gt;
├─ Performance&lt;br&gt;
├─ Testing&lt;br&gt;
└─ Boas práticas&lt;/p&gt;

&lt;p&gt;Nível 4: Ecossistema&lt;br&gt;
│&lt;br&gt;
├─ Vite / CLI avançado&lt;br&gt;
├─ Tailwind / Vuetify&lt;br&gt;
├─ Nuxt.js (SSR)&lt;br&gt;
├─ PWA&lt;br&gt;
└─ Deploy&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>javascript</category>
      <category>vue</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
