vue-jsx-best-practices
작성자 vuejs-aivue-jsx-best-practices는 frontend 개발자가 Vue 3 TSX/JSX에서 `className`, `htmlFor` 같은 React 스타일 속성을 Vue에 맞는 HTML 속성으로 바꿔, 더 자연스럽고 타입 검사에 잘 맞는 Vue JSX 코드를 작성하도록 돕습니다.
이 스킬은 64/100점으로, 디렉터리에 등재할 만하지만 활용 범위는 다소 제한적입니다. 저장소는 Vue JSX 마이그레이션과 속성/타입 오류라는 분명하고 좁은 사용 계기를 제시하고, 실제로 자주 걸리는 함정을 설명하는 구체적인 참고 자료도 포함합니다. 다만 완결된 운영형 스킬이라기보다는, 초점이 뚜렷한 리마인더 노트에 더 가깝습니다.
- SKILL.md의 사용 계기가 명확합니다. React에서 Vue JSX로 마이그레이션하거나 속성 타입 오류가 발생할 때 바로 참고 문서로 연결됩니다.
- 참고 콘텐츠가 `class` vs `className`, `for` vs `htmlFor`처럼 Vue JSX의 차이를 근거 있게 구체적으로 설명합니다.
- 실무용 체크리스트와 코드 예시가 포함되어 있어, 일반적인 프롬프트보다 에이전트가 더 빠르게 지침을 적용할 수 있습니다.
- 범위가 매우 좁습니다. 이 스킬은 Vue JSX 전반의 워크플로우보다 JSX 규칙 차이 한 가지 축에 주로 집중합니다.
- 운영 측면의 깊이는 제한적입니다. install command, support files가 없고, 단일 참고 노트 외에 단계별 안내도 많지 않습니다.
vue-jsx-best-practices 스킬 개요
vue-jsx-best-practices 스킬은 Vue에서 JSX를 작성할 때 가장 흔히 나오는 실수를 피하도록 돕습니다. 많은 사람이 React JSX 관례가 Vue에도 그대로 적용된다고 가정하지만, 그렇지 않습니다. Vue JSX에서는 일반적으로 React식 className, htmlFor 대신 표준 HTML 속성명인 class, for를 사용합니다.
이 스킬이 잘 맞는 사람
이 스킬은 특히 다음과 같은 프론트엔드 개발자에게 적합합니다.
- Vue 3 컴포넌트를 JSX 또는 TSX로 작성한다
- 컴포넌트를 React에서 Vue로 마이그레이션한다
- JSX props나 속성과 관련된 TypeScript 에러를 겪고 있다
- Vue render function이 Vue template 관례와 맞게 유지되길 원한다
업무가 “시행착오 없이 이 Vue JSX 코드를 타입 안정적이고 Vue답게 정리하라”에 가깝다면, vue-jsx-best-practices는 아주 잘 맞는 선택입니다.
실제로 해결해 주는 작업
이 스킬의 핵심은 단순히 “JSX를 배우는 것”이 아닙니다. 거칠게 작성된 JSX, React 스타일이 섞인 JSX, 또는 React 형태로 굳어진 JSX를 다음과 같은 Vue 호환 JSX로 바꾸는 데 있습니다.
- TypeScript 검사 통과
- Vue 관례 준수
- 미묘한 마이그레이션 버그 방지
- template와 render function을 함께 쓰는 팀에서도 읽기 쉬운 코드 유지
vue-jsx-best-practices가 다른 점
이 스킬은 범위가 좁습니다. 그리고 그 점이 오히려 장점입니다. Vue 렌더링 전반을 다루려 하기보다, 실제로 마찰이 큰 한 가지 함정에 집중합니다. 바로 Vue JSX가 React식 네이밍이 아니라 HTML 속성명을 사용한다는 점입니다. 그래서 잘못된 속성 디버깅, 마이그레이션 코드 리뷰, 코드베이스 전반의 TSX 사용 방식 표준화 같은 상황에서 특히 가치가 있습니다.
설치 전에 알아둘 점
이 스킬은 Vue 아키텍처 전반을 다루는 가이드가 아닙니다. 저장소를 보면 핵심은 하나의 레퍼런스 문서, reference/render-function-jsx-vue-vs-react.md에 집중된 작고 명확한 스킬입니다. Vue JSX 문법 차이와 더 안전한 마이그레이션 패턴에 대한 집중 가이드가 필요하다면 vue-jsx-best-practices를 설치할 만합니다. 반대로 JSX 전반을 폭넓게 다루는 종합 핸드북을 기대한다면 용도가 다릅니다.
vue-jsx-best-practices 스킬 사용 방법
vue-jsx-best-practices 설치가 특히 유효한 상황
에이전트나 워크플로가 Vue JSX/TSX를 생성, 리뷰, 마이그레이션할 때 이 스킬을 사용하는 것이 좋습니다. 실용적인 설치 명령은 다음과 같습니다.
npx skills add vuejs-ai/skills --skill vue-jsx-best-practices
설치 후에는 작업 지시에 다음과 같은 표현이 들어갈 때 호출하면 좋습니다.
- “convert this React component to Vue TSX”
- “fix JSX attribute type errors in Vue”
- “review this Vue render function for React-style conventions”
- “make this Vue JSX idiomatic”
먼저 읽어야 할 저장소 파일
이 스킬은 규모가 작기 때문에 어떤 순서로 읽느냐가 중요합니다. 가장 빠른 읽기 순서는 다음과 같습니다.
skills/vue-jsx-best-practices/SKILL.mdskills/vue-jsx-best-practices/reference/render-function-jsx-vue-vs-react.md
실질적인 가치는 두 번째 파일에 가장 많이 담겨 있습니다. 핵심 규칙이 무엇인지, TypeScript가 왜 이 문제를 잡아내는지, 마이그레이션 중 무엇을 어떻게 바꿔야 하는지를 설명합니다.
이 스킬이 필요로 하는 입력
vue-jsx-best-practices는 “Vue JSX 좀 도와줘” 같은 막연한 요청보다 실제 코드와 맥락이 있을 때 훨씬 잘 작동합니다. 가능하면 다음을 함께 제공하세요.
- 컴포넌트 소스 코드
- Vue 3인지 여부
- JSX를 쓰는지 TSX를 쓰는지
- 현재 발생 중인 TypeScript 에러
- 코드가 React에서 온 것인지 여부
- Vite 같은 빌드 도구 정보
최소한 유용한 입력 예시:
- “This is a Vue 3 TSX component migrated from React. Fix invalid JSX attributes and explain each change.”
더 좋은 입력 예시:
- “Review this Vue 3 TSX file migrated from React. Replace React-only JSX conventions with Vue equivalents, preserve behavior, and note anything that will still require plugin or TypeScript config checks in Vite.”
vue-jsx-best-practices가 강제해 주는 핵심 규칙
실무적으로 가장 중요한 요점은 단순합니다.
className이 아니라class를 쓴다htmlFor가 아니라for를 쓴다- Vue template와 맞는 HTML 스타일 속성명을 사용한다
onClick처럼on접두사가 붙은 표준 이벤트 핸들러 이름을 사용한다
이 규칙이 중요한 이유는 Vue 런타임이 어느 정도 관대하게 동작할 수는 있어도, TypeScript는 React 스타일 표기를 문제로 잡아주는 편이 바람직하기 때문입니다. 즉, 불일치를 초기에 걸러낼 수 있습니다.
모호한 요청을 좋은 프롬프트로 바꾸기
약한 프롬프트:
- “Fix this JSX.”
강한 프롬프트:
- “Apply
vue-jsx-best-practicesto this Vue 3 TSX component. Identify any React JSX conventions such asclassNameorhtmlFor, replace them with Vue JSX equivalents, keep event handlers intact, and explain which changes are for type safety versus runtime behavior.”
왜 더 좋은가:
- 문제의 출발점이 React 마이그레이션임을 명시한다
- 어떤 치환이 필요한지 구체적으로 요청한다
- 컴파일 타임 이슈와 런타임 관대함을 구분한다
- 일반론적인 Vue 조언으로 흘러갈 가능성을 줄인다
마이그레이션 작업에 권장되는 워크플로
좋은 vue-jsx-best-practices usage 워크플로는 다음과 같습니다.
- 원본 React 컴포넌트 또는 혼합 JSX 컴포넌트를 붙여 넣는다.
- 먼저 Vue JSX 관례 기준의 1차 변환을 요청한다.
- 그다음 TypeScript 호환성만 보는 2차 점검을 요청한다.
- props, labels, 이벤트 바인딩을 한 줄씩 비교한다.
- 로컬 타입 체커를 돌린 뒤 남은 에러를 다시 스킬에 입력한다.
이렇게 단계를 나누는 편이 “한 번에 전체 마이그레이션”을 요구하는 것보다 낫습니다. vue-jsx-best-practices는 전체 프레임워크 재작성보다 JSX 관례 정리에 가장 강하기 때문입니다.
변환된 코드에서 확인할 것
vue-jsx-best-practices를 사용한 뒤에는 다음 항목을 직접 확인하세요.
for를 사용하는 label 처리class를 사용하는 CSS 클래스 바인딩- React에서 가져온 DOM prop 네이밍
- 이벤트 핸들러 표기
- 결과물이 여전히 React 컴포넌트 패턴을 전제하고 있지는 않은지
이 스킬은 문법과 관례 정리에는 도움이 되지만, hooks, state, 컴포넌트 API처럼 프레임워크별 로직까지 자동으로 검증해 주지는 않습니다.
TypeScript 및 Vite 관련 고려사항
원본 자료는 Vue JSX 타입 추론을 위한 TypeScript 설정과 Vite 설정을 관련 주제로 명시하고 있습니다. 실무적으로는 속성 에러를 단순한 스타일 문제로만 보면 안 된다는 뜻입니다. TSX 설정이 제대로 되어 있다면 React 스타일 속성은 타입 검사에서 드러나야 합니다. 만약 그렇지 않다면, 런타임에서 “일단 돌아간다”는 이유만으로 믿지 말고 Vue JSX plugin과 TypeScript 설정이 올바른지 먼저 점검하세요.
잘 맞는 경우와 잘 안 맞는 경우
잘 맞는 경우:
- React에서 Vue TSX로 마이그레이션
- Vue JSX 관례 중심의 코드 리뷰
- Vue 3에서 JSX 속성 에러 수정
- render function 스타일의 팀 표준화
잘 안 맞는 경우:
- Vue를 처음부터 학습하는 용도
- template 문법 도움
- Composition API 설계
- JSX 관련 설정을 넘어서는 전체 빌드 환경 트러블슈팅
더 좋은 결과를 얻는 요청 예시
다음처럼 요청해 보세요.
“Use vue-jsx-best-practices on this Vue 3 TSX component. Flag every React-style JSX attribute, replace it with Vue JSX syntax, keep the component behavior unchanged, and give me a short checklist I can apply to the rest of the codebase.”
이런 프롬프트는 단순 수정뿐 아니라, 이후 코드베이스 전체에 재사용할 수 있는 리뷰 기준까지 함께 얻을 수 있습니다.
vue-jsx-best-practices 스킬 FAQ
vue-jsx-best-practices는 React 마이그레이션에만 쓰는 스킬인가요?
아닙니다. React 마이그레이션이 가장 분명한 사용 사례인 것은 맞지만, 팀이 Vue TSX를 직접 작성하면서 일관되고 타입 안정적인 관례를 유지하고 싶을 때도 유용합니다. Vue JSX 안으로 React식 속성명이 섞여 들어오는 상황이라면 언제든 도움이 됩니다.
vue-jsx-best-practices를 설치하면 plugin이 깔리거나 config가 바뀌나요?
아닙니다. 이 스킬은 가이드를 제공할 뿐이며, 툴체인을 자동으로 수정하는 패키지가 아닙니다. 앱 안의 Vue JSX 및 TypeScript 설정은 여전히 직접 갖추고 있어야 합니다. 이 스킬은 그 설정이 갖춰졌을 때 코드가 어떤 모습이어야 하는지 판단하는 데 도움을 줍니다.
일반적인 프롬프트와의 가장 큰 차이는 무엇인가요?
일반 프롬프트는 그럴듯한 JSX를 만들어도 Vue 전용 속성 관례를 제대로 반영하지 못할 수 있습니다. vue-jsx-best-practices는 Vue와 React의 JSX 차이, 그리고 그에 따른 타입 안정성 문제를 중심에 두기 때문에 이 좁은 문제에서는 더 신뢰하기 쉽습니다.
초보자도 쓰기 쉬운가요?
네. 기본적인 Vue나 JSX 개념을 이미 알고 있다면 충분히 접근 가능합니다. 범위가 좁아서 오히려 이해하기 쉽습니다. 다만 Vue 렌더링 자체가 완전히 처음이라면, 이 스킬이 컴포넌트, template, render function에 대한 넓은 입문서 역할까지 하지는 않습니다.
언제 vue-jsx-best-practices를 쓰지 않는 편이 좋나요?
코드베이스가 Vue template만 사용하고 JSX/TSX를 전혀 쓰지 않는다면 굳이 필요하지 않습니다. 또한 문제가 JSX 속성명과 무관하고 라우팅, 상태 관리, 서버 렌더링 같은 주제라면 이 스킬의 범위를 벗어납니다.
React 스타일 속성을 쓰면 런타임이 항상 깨지나요?
항상 그렇지는 않습니다. 레퍼런스 문서에서도 Vue 런타임이 일부 속성을 관대하게 처리해 올바르게 변환할 수 있다고 설명합니다. 다만 더 큰 문제는 일관성과 타입 안정성입니다. Vue JSX에서는 TypeScript가 이런 React 관례를 거부해 주는 편이 보통 더 바람직하고, 바로 그 지점을 이 스킬이 잘 짚어 줍니다.
vue-jsx-best-practices 스킬 개선 방법
코드, 에러, 프레임워크 의도를 함께 제공하기
vue-jsx-best-practices 결과를 가장 빠르게 개선하는 방법은 다음 정보를 함께 주는 것입니다.
- 원본 컴포넌트
- 원하는 대상 프레임워크 형태
- 실제 컴파일러 또는 에디터 에러
- 목표가 마이그레이션인지, 정리(cleanup)인지, 리뷰인지
이 정보가 없으면 결과가 눈에 띄는 속성 치환 수준에서 멈추고, 주변 JSX 전제까지는 놓칠 수 있습니다.
diff 중심 리뷰를 요청하기
가치가 높은 프롬프트 예시는 다음과 같습니다.
“Review this file using vue-jsx-best-practices. Do not rewrite everything. Only flag JSX conventions that are invalid, risky, or non-idiomatic in Vue, and explain each change briefly.”
이렇게 요청하면 과도한 수정이 줄고, 기존 코드베이스 안에서 리뷰하기도 훨씬 수월해집니다.
문법 수정과 프레임워크 재작업을 분리하기
흔한 실패 패턴 중 하나는 JSX 문법 차이와 React-to-Vue 동작 마이그레이션 전체를 한 번에 해결하려는 것입니다. 다음처럼 작업을 분리하면 결과 품질이 좋아집니다.
- JSX 관례 정규화
- 타입 에러 수정
- 프레임워크 로직 리팩터링
이렇게 해야 vue-jsx-best-practices가 실제로 잘 다루는 범위에 집중할 수 있습니다.
재사용 가능한 체크리스트를 요청하기
저장소 자체도 체크리스트 기반 사고방식을 암시하고 있습니다. 이를 더 발전시켜 팀에서 바로 쓸 수 있는 점검 목록을 요청해 보세요. 예를 들면:
className을class로 교체htmlFor를for로 교체on*이벤트 핸들러 점검- 변환된 파일에 대해 TS 검사 재실행
이렇게 하면 일회성 도움에서 끝나지 않고 반복 가능한 리뷰 프로세스로 이어집니다.
첫 번째 패스 후 config 가정을 검증하기
출력은 맞아 보이는데 에디터가 잘못된 속성을 잡아주지 않는다면, TSX 환경 가정에 대해 후속 질문을 하세요. 이 스킬은 TypeScript 추론과 Vite 설정을 관련 맥락으로 언급하므로, 로컬 설정의 검증이 약하면 실제 실수를 놓칠 수 있습니다.
자주 놓치는 실패 패턴
vue-jsx-best-practices 사용 후에는 다음 문제를 주의해서 보세요.
- 중첩 요소 안에 React 속성명이 남아 있는 경우
- 런타임에서는 “되는 것처럼” 보여도 TS 검사에는 실패하는 출력
- 문법 수정이 아니라 동작 변경까지 섞인 마이그레이션 조언
- label, class, DOM props 정리가 덜 끝난 상태
이런 항목은 2차 리뷰 대상으로 아주 적절합니다.
첫 결과를 받은 뒤 프롬프트를 개선하기
좋은 반복 프롬프트 예시는 다음과 같습니다.
“Now do a second pass with vue-jsx-best-practices focused only on missed React-style JSX conventions and any Vue JSX typing issues. Keep logic unchanged.”
이런 후속 요청은 완전히 새로 다시 쓰게 하는 것보다, 놓친 React 스타일 JSX 관례와 Vue JSX 타이핑 이슈만 정밀하게 잡아내는 데 더 효과적인 경우가 많습니다.
판단 기준은 레퍼런스 파일에 두기
출력을 신뢰해도 될지 애매하다면 다음 파일과 비교해 보세요.
reference/render-function-jsx-vue-vs-react.md
이 파일이야말로 이 스킬이 의도한 동작을 가장 명확하게 보여주는 기준점입니다. 설치 여부를 판단할 때도 좋은 신호입니다. 스킬 규모는 작지만, 가이드는 충분히 구체적이어서 피할 수 있는 Vue JSX 실수를 실제로 줄여 줍니다.
