hyf0/vue-jsx-best-practices

Melhores práticas para uso da sintaxe JSX no Vue (ex.: class vs className, configuração de plugin JSX).

O que é vue-jsx-best-practices?

Esta skill fornece diretrizes claras e melhores práticas para desenvolvedores que desejam utilizar a sintaxe JSX em projetos Vue.js. Ela aborda diferenças cruciais, como o uso de 'class' (Vue) versus 'className' (React), e orienta sobre como configurar corretamente o plugin JSX para Vue (geralmente com Babel ou esbuild). Útil para quem trabalha com Vue 3 e prefere a flexibilidade do JSX, seja em componentes dinâmicos ou em projetos que mesclam Vue com outras bibliotecas. A skill também explica como lidar com diretivas Vue, props e render functions usando JSX, garantindo compatibilidade e evitando armadilhas comuns. Suporta ambientes de desenvolvimento como Vite, Nuxt e configurações manuais com Babel.

Funciona com~Claude Code~Codex CLI~Cursor
Part ofReact
npx skills add https://github.com/hyf0/vue-skills/tree/main/skills/vue-jsx-best-practices

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que vue-jsx-best-practices faz?

Melhores práticas para uso da sintaxe JSX no Vue (ex.: class vs className, configuração de plugin JSX).

Diferenças entre JSX no React e no Vue

No Vue, ao usar JSX, algumas propriedades diferem do React:

  • class (Vue) ao invés de className (React)
  • style aceita objetos ou strings, sem a necessidade de camelCase forçado (mas camelCase é recomendado para consistência)
  • Diretivas Vue como v-if, v-for e v-model possuem equivalentes em JSX (ex.: vModel para v-model)

Configuração do Plugin JSX

Para usar JSX no Vue, você precisa de um plugin de transformação JSX. No Babel, use @vue/babel-plugin-jsx:

npm install --save-dev @vue/babel-plugin-jsx

No arquivo de configuração do Babel (babel.config.js):

module.exports = {
  plugins: ['@vue/babel-plugin-jsx']
}

Para projetos com Vite, o suporte a JSX é nativo com Vue 3, mas certifique-se de que o plugin @vitejs/plugin-vue-jsx esteja instalado:

npm install --save-dev @vitejs/plugin-vue-jsx

E no vite.config.js:

import vueJsx from '@vitejs/plugin-vue-jsx'

export default {
  plugins: [vueJsx()]
}

Exemplos de Uso

Usando class (Vue) ao invés de className

// Correto no Vue
const MyComponent = () => <div class="container">Hello</div>

// Errado (React)
const MyComponent = () => <div className="container">Hello</div>

Usando vModel para ligação bidirecional

import { ref } from 'vue'

const MyForm = () => {
  const input = ref('')
  return (
    <input vModel={input.value} placeholder="Digite algo" />
  )
}

Render Functions com JSX

import { defineComponent, ref } from 'vue'

export default defineComponent({
  setup() {
    const count = ref(0)
    return () => (
      <button onClick={() => count.value++}>
        Contagem: {count.value}
      </button>
    )
  }
})

Para mais detalhes, consulte a documentação oficial do Vue JSX.

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

Habilidades Relacionadas