Community코딩 & 개발github.com

vuejs-ai/vue-jsx-모범-사례

Vue에서 JSX 구문 사용 시 주의사항 (예: class vs className, JSX 플러그인 설정 등).

vue-jsx-모범-사례란 무엇인가요?

이 스킬은 Vue 3 프로젝트에서 JSX를 사용할 때 필요한 모범 사례와 구문 차이를 설명합니다. Vue의 템플릿 시스템과 JSX의 차이점을 이해하고, JSX에서 class가 아닌 className을 사용해야 하는 이유와 같은 핵심 호환성 문제를 다룹니다. 주로 개발자 도구, AI 코딩 어시스턴트(Claude Code, Cursor 등)와 통합되어 Vue 컴포넌트를 JSX로 작성할 때 올바른 구문을 자동으로 제안하거나 검사할 수 있습니다. 이 스킬은 Vue 3 + JSX 개발 환경 설정, 플러그인 구성(vitejs/plugin-vue-jsx 등) 및 일반적인 오류를 방지하는 방법에 대한 실용적인 지침을 제공합니다.

지원 대상~Claude Code~Codex CLI~Cursor
Part ofReact
npx skills add https://github.com/vuejs-ai/skills/tree/main/skills/vue-jsx-best-practices

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

vue-jsx-모범-사례은(는) 무엇을 하나요?

Vue에서 JSX 구문 사용 시 주의사항 (예: class vs className, JSX 플러그인 설정 등).

개요

Vue 3 프로젝트에서 JSX를 사용하려면 추가 설정이 필요하며, JSX와 Vue 템플릿 간의 구문 차이를 이해해야 합니다. 이 문서는 주요 차이점과 모범 사례를 설명합니다.

주요 차이점

class vs className

  • Vue 템플릿: class="my-class"
  • JSX: className="my-class"
// 올바름 (JSX)
<div className="container">Hello</div>

// 잘못됨 (Vue 템플릿 구문)
<div class="container">Hello</div>

동적 클래스

// JSX에서 동적 클래스
<div className={isActive ? 'active' : 'inactive'}>Dynamic</div>

스타일 속성

// JSX에서 인라인 스타일 (객체 사용)
<div style={{ color: 'red', fontSize: '14px' }}>Styled</div>

이벤트 처리

// JSX에서 이벤트 (onClick, onChange 등)
<button onClick={handleClick}>Click me</button>

플러그인 설정

Vite 사용 시

npm install @vitejs/plugin-vue-jsx

vite.config.js:

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

export default {
  plugins: [vue(), vueJsx()],
}

Nuxt 3 사용 시

Nuxt 3는 기본적으로 JSX를 지원합니다. nuxt.config.ts:

export default defineNuxtConfig({
  vue: {
    compilerOptions: {
      // 필요 시 JSX 관련 옵션 추가
    },
  },
})

일반적인 오류 및 해결 방법

오류원인해결 방법
class 속성 인식 안 됨JSX에서는 className 사용className으로 변경
이벤트 리스너 오류Vue 템플릿의 @click은 JSX에서 onClickonClick 사용
스타일 오류style 속성이 문자열이 아닌 객체여야 함객체 형태로 전달

참고 리소스

Individual skills in this repo

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

관련 스킬