vue
bởi antfuvue skill dành cho việc tạo mã Vue 3 với Composition API, `<script setup lang="ts">`, macro, reactivity và các component dựng sẵn. Dùng skill này để tham khảo cách cài đặt và cải thiện cách dùng vue cho SFCs, `defineProps`, `defineEmits`, `defineModel`, watchers, `Transition`, `Teleport`, `Suspense` và `KeepAlive`.
Skill này đạt 78/100, tức là một lựa chọn khá tốt để đưa vào directory: agent có tín hiệu kích hoạt rõ ràng cho các tác vụ Vue 3, có tài liệu tham chiếu sát API và các mặc định mang tính định hướng giúp giảm phỏng đoán. Tuy vậy, người dùng nên kỳ vọng nội dung thiên về tra cứu tham khảo hơn là một quy trình từng bước.
- Khả năng kích hoạt rất rõ: phần mô tả nêu cụ thể Vue 3 Composition API, `<script setup lang="ts">`, các macro như `defineProps`/`defineEmits`/`defineModel`, watchers và các component dựng sẵn.
- Giá trị sử dụng thực tế tốt nhờ các ví dụ cụ thể và liên kết tham chiếu bao quát script setup macros, API reactivity/lifecycle và các built-in nâng cao như `Transition`, `Teleport`, `Suspense` và `KeepAlive`.
- Cách định vị đáng tin cậy và cập nhật: frontmatter cho biết nội dung được tạo từ vuejs/docs, có metadata nguồn và nêu rõ mốc chuẩn Vue 3.5 cùng các ưu tiên code cụ thể.
- Hướng dẫn quy trình còn hạn chế: các tín hiệu cấu trúc cho thấy không có phần workflow, script, rule hay lệnh cài đặt rõ ràng, nên việc triển khai vẫn phụ thuộc vào agent trong việc chuyển tài liệu tham chiếu thành các bước phù hợp với từng tác vụ.
- Skill này mang tính định hướng quan điểm hơn là trung lập; ví dụ, nó nhấn mạnh Composition API và không khuyến khích Reactive Props Destructure, nên có thể không phù hợp với các nhóm dùng Options API hoặc theo quy ước khác.
Tổng quan về vue skill
vue skill dùng để làm gì
vue skill là một hướng dẫn tập trung để sinh và rà soát code Vue 3 theo các best practice hiện tại, đặc biệt quanh Composition API, <script setup lang="ts">, compiler macros, các API reactivity, và những built-in component như Transition, Teleport, Suspense và KeepAlive. Nó hữu ích nhất khi bạn muốn AI agent tạo ra Vue Single File Components đã đi đúng phong cách Vue hiện đại, thay vì quay về các mẫu Options API cũ.
Ai nên cài vue skill này
vue skill này phù hợp với frontend developer, full-stack developer và người dùng AI thường xuyên nhờ tạo Vue component, composable hoặc refactor code. Nó đặc biệt đáng giá nếu bạn muốn đầu ra ưu tiên TypeScript, hiểu rõ macro, và bám sát tài liệu thời kỳ Vue 3.5 thay vì pha trộn thói quen từ Vue 2 / giai đoạn đầu của Vue 3.
Nhu cầu thực tế mà skill này giải quyết
Phần lớn người dùng không cần một bản tóm tắt framework chung chung. Họ cần agent viết code Vue một cách ổn định sao cho:
- mặc định dùng Composition API
- ưu tiên
<script setup lang="ts"> - xử lý
defineProps,defineEmitsvàdefineModelđúng cách - chọn
ref,shallowRef,computedvàwatchcẩn thận hơn - chỉ dùng các built-in nâng cao khi chúng thực sự phù hợp
Đó là giá trị thực tế của vue for Frontend Development: giảm đáng kể khối lượng dọn dẹp sau khi AI sinh code.
Điều gì khiến vue skill này khác biệt rõ rệt
Điểm khác biệt lớn nhất là định hướng rất rõ ràng. Nguồn gốc của skill này ưu tiên TypeScript, <script setup lang="ts"> và Composition API, đồng thời không khuyến khích Reactive Props Destructure. Skill cũng có các tài liệu tham chiếu tập trung cho:
- macro trong script setup
- reactivity và các core API mới hơn
- built-in component và directive nâng cao
Vì vậy, skill này phù hợp cho công việc triển khai thực tế hơn là một prompt kiểu “dạy tôi Vue” theo nghĩa rộng.
vue skill này không cố bao quát những gì
Đây không phải là bản đồ đầy đủ của toàn bộ hệ sinh thái Vue. Nó không thay thế tài liệu chuyên sâu về routing, thư viện state, SSR framework, testing hay build tooling. Nếu tác vụ chính của bạn là kiến trúc Nuxt, thiết lập Vue Router, thiết kế Pinia hoặc pipeline triển khai, thì vue skill vẫn giúp ở mức style code cho component, nhưng không nên là nguồn duy nhất bạn dựa vào.
Cách dùng vue skill
Bối cảnh cài đặt cho vue
Hãy cài skill vào môi trường có hỗ trợ skills bằng lệnh:
npx skills add antfu/skills --skill vue
Thông tin từ repository cho thấy skill nằm trong skills/vue của antfu/skills. Ở đây không có bước cài package Vue runtime riêng; đây là lớp hướng dẫn để AI sinh code Vue tốt hơn, không phải bản cài framework.
Nên đọc những file này trước
Nếu bạn muốn đi theo lộ trình có tín hiệu tốt nhất trước khi dùng vue skill, hãy đọc theo thứ tự sau:
skills/vue/SKILL.mdskills/vue/references/script-setup-macros.mdskills/vue/references/core-new-apis.mdskills/vue/references/advanced-patterns.mdskills/vue/GENERATION.md
Vì sao theo thứ tự này:
SKILL.mdcho bạn biết phạm vi và các ưu tiên vận hành.- Ba file reference chứa những chi tiết thực tiễn mà agent nhiều khả năng sẽ áp dụng.
GENERATION.mdcho biết tài liệu này được sinh từ Vue docs và bám theo một snapshot tương đối mới.
vue skill cần những đầu vào nào
Chất lượng vue usage phụ thuộc rất nhiều vào yêu cầu bạn đưa vào. Hãy cung cấp cho agent:
- mục đích của component
- props và emitted events
- có cần
v-modelhay không - shape state mong muốn
- nhu cầu dữ liệu async
- đầu ra nên là component, composable hay ví dụ pattern
- ràng buộc phiên bản Vue nếu bạn không dùng Vue 3 mới
- yêu cầu TypeScript
- các ràng buộc về UI hoặc hiệu năng
Đầu vào yếu:
- “Make a Vue component for search.”
Đầu vào mạnh:
- “Create a Vue 3.5 SFC using
<script setup lang="ts">for a searchable product list. Props:items,loading,modelValue. Emitupdate:modelValueandselect. UsedefineModelif appropriate, debounce local search input, and prefershallowReffor large item arrays.”
Biến mục tiêu mơ hồ thành prompt vue mạnh hơn
Để gọi vue skill hiệu quả, hãy yêu cầu rõ các lựa chọn triển khai. Cấu trúc prompt tốt nên có:
- nêu rõ artifact cần tạo
- nêu rõ quy ước Vue muốn dùng
- xác định input và output
- thêm hành vi và ràng buộc
- yêu cầu giải thích khi có tradeoff quan trọng
Ví dụ:
“Using the vue skill style, write a Vue 3 component with <script setup lang="ts">. Use Composition API only. Define typed props and emits, avoid Options API, and explain whether ref or shallowRef is the better fit for the main state. Include template and minimal styles.”
Cách này hiệu quả hơn một yêu cầu chung chung kiểu “write Vue” vì nó khớp với những ưu tiên mặc định của skill.
Phong cách code mặc định mà vue skill sẽ đẩy theo
Tài liệu nguồn định hướng agent khá mạnh về phía:
- Vue 3.5
- Composition API
<script setup lang="ts">- định nghĩa component dựa trên macro
- props và emits có typing
- dùng
shallowRefcó chọn lọc cho dữ liệu nhạy cảm về hiệu năng
Nếu bạn muốn Options API, JavaScript thuần hoặc các pattern Vue cũ, hãy nói rõ ngay từ đầu vì skill này mặc định nghiêng theo hướng ngược lại.
Trường hợp dùng phù hợp nhất cho vue usage
vue guide này mạnh nhất khi bạn cần:
- viết mới Vue SFC
- refactor component cũ sang
<script setup> - định nghĩa props, emits và model có typing
- chọn giữa
ref,reactive,computedvà watchers - dùng
Transition,Teleport,SuspensehoặcKeepAlive - tạo ví dụ composable theo pattern Vue hiện đại
Nó kém phù hợp hơn cho công việc thuần thiết kế giao diện hoặc các tác vụ frontend không gắn riêng với framework.
Quy trình thực tế để lấy bản output đầu tiên
Một workflow đáng tin cậy là:
- Yêu cầu một Vue SFC bản đầu với props, emits và shape state được nêu rõ.
- Kiểm tra xem API được sinh ra có khớp với contract thực của component hay không.
- Yêu cầu lượt thứ hai để siết lại lựa chọn reactivity, typing và edge case.
- Chỉ sau đó mới yêu cầu các tính năng nâng cao như transition hoặc suspense boundary.
Trình tự này quan trọng vì các tính năng Vue nâng cao rất dễ bị lạm dụng nếu luồng state cơ bản vẫn chưa rõ ràng.
Những chi tiết từ repository ảnh hưởng trực tiếp đến chất lượng output
Một số chi tiết hữu ích được rút ra từ source của skill:
defineModelđược xem là khả dụng từ Vue 3.4+withDefaultsvẫn còn phù hợp với Vue 3.4 trở xuốngreactive()sẽ mất reactivity khi destructuringshallowRefđược ưu tiên khi không cần deep reactivity- các built-in như
TransitionvàSuspenseđược trình bày kèm pattern thực tế
Đây chính là những chi tiết giúp code sinh ra tốt hơn hẳn so với việc chỉ lướt repo một cách hời hợt.
Ví dụ các yêu cầu rất hợp với vue skill
Các yêu cầu vue usage tốt gồm:
- “Refactor this Options API component into
<script setup lang="ts">.” - “Generate typed
definePropsanddefineEmitsfor this form component.” - “Show a Vue 3 example using
Teleportfor a modal.” - “Explain whether to use
watch,watchEffect, orcomputedhere.” - “Rewrite this component to use
defineModelon Vue 3.4+.”
Những trường hợp lệch kỳ vọng thường gặp trước khi cài
Đừng kỳ vọng chỉ riêng vue skill sẽ giải quyết được:
- dựng khung project
- kiến trúc router
- thiết kế state store cho ứng dụng lớn
- các quyết định riêng của SSR hoặc Nuxt
- thiết lập test runner
- chi tiết tích hợp CSS framework
Nếu đó mới là điểm nghẽn chính của bạn, hãy cài skill này để nâng chất lượng sinh component, chứ không phải coi nó như hướng dẫn đầy đủ cho toàn bộ Vue stack.
Câu hỏi thường gặp về vue skill
vue skill này có phù hợp cho người mới bắt đầu không?
Có, nếu bạn đã xây dựng với Vue 3 và muốn AI cho ra output sạch hơn. Đây không phải một giáo trình nhập môn, nhưng nó giảm bớt sự rối rắm bằng cách ưu tiên một phong cách rõ ràng: Composition API với <script setup lang="ts">. Sự nhất quán đó giúp người mới tránh bị trộn lẫn nhiều pattern.
vue skill có hỗ trợ các pattern Vue cũ hơn không?
Có, nhưng không phải lựa chọn ưu tiên. Tài liệu nguồn nói rõ nên luôn ưu tiên Composition API hơn Options API. Nếu codebase của bạn mang nặng tính legacy, bạn vẫn có thể dùng skill này, nhưng nên nêu rõ các ràng buộc tương thích và rà soát migration cẩn thận.
Nó khác gì so với một prompt Vue thông thường?
Một prompt thông thường thường sinh ra code Vue thiếu nhất quán: trộn API, typing yếu hoặc dùng macro đã cũ. vue skill cung cấp cho agent một “playbook” hẹp và rõ hơn, bao gồm các ưu tiên, cách dùng macro hiện đại và các tài liệu tham chiếu đúng trọng tâm. Kết quả thường là bạn phải sửa tay ít hơn.
Nếu tôi làm với Nuxt hoặc stack lớn hơn thì chỉ cài vue là đủ không?
Không. vue install hỗ trợ tốt cho phần hướng dẫn component và reactivity, nhưng các vấn đề ở stack lớn hơn vẫn cần kiến thức về Nuxt, routing, state, data fetching và triển khai. Hãy dùng nó như một lớp hỗ trợ sinh code Vue, không phải skill bao trọn kiến trúc ứng dụng.
Khi nào không nên dùng vue skill?
Hãy bỏ qua nó khi tác vụ của bạn là:
- code UI không phụ thuộc framework
- làm việc với React/Angular/Svelte
- triển khai backend-only
- quy ước rất nặng về Nuxt với rất ít component Vue thuần
- bảo trì Options API legacy nghiêm ngặt, nơi pattern hiện đại không được phép dùng
vue skill có bao quát các tính năng Vue nâng cao không?
Có, nhưng theo hướng chọn lọc. Các tài liệu tham chiếu đi kèm bao phủ Transition, Teleport, Suspense, KeepAlive, directives, reactivity APIs, lifecycle hooks và macros. Chừng đó là đủ cho nhiều tác vụ frontend thực tế mà không biến nó thành một bách khoa toàn thư về Vue.
Cách cải thiện vue skill
Cung cấp rõ ranh giới phiên bản và tương thích cho agent
Skill này dựa trên định hướng của giai đoạn Vue 3.5. Nếu ứng dụng của bạn đang dùng Vue 3.3, 3.4 hoặc bị giới hạn hỗ trợ macro cũ hơn, hãy nói rõ ngay từ đầu. Điều này đặc biệt quan trọng với các tính năng như defineModel và cách xử lý giá trị mặc định trong props.
Nêu rõ contract của component, đừng chỉ mô tả ý tưởng UI
Cách nhanh nhất để cải thiện output từ vue là cung cấp:
- tên và kiểu của prop
- các event được emit
- model bindings
- trạng thái async
- trạng thái rỗng và lỗi
- trách nhiệm giữa parent và child
Skill này rất mạnh ở khâu triển khai khi contract đã rõ. Nó yếu hơn khi phải tự suy đoán toàn bộ API từ một mô tả UI mơ hồ.
Yêu cầu rõ các lựa chọn reactivity
Nhiều lỗi Vue đến từ mô hình hóa state, không phải cú pháp template. Hãy prompt trực tiếp về các tradeoff như:
- “Use
shallowRefif deep tracking is unnecessary.” - “Explain whether
computedorwatchis more appropriate.” - “Avoid destructuring reactive objects unless using
toRefs.”
Cách này bám đúng phần mạnh nhất trong các file tham chiếu và cải thiện chất lượng code tốt hơn nhiều so với việc chỉ yêu cầu “best practices” một cách chung chung.
Bắt các lỗi trượt phổ biến từ sớm
Hãy rà soát output đầu tiên để tìm các vấn đề sau:
- xuất hiện Options API trong khi bạn muốn Composition API
- dùng
<script>thường thay vì<script setup lang="ts"> definePropshoặcdefineEmitskhông có typing- dùng deep reactivity không cần thiết
- lạm dụng watchers ở chỗ
computedsẽ đơn giản hơn - thêm built-in nâng cao dù không có nhu cầu thực
Đây là những kiểu lệch hướng dễ xảy ra nhất khi generation chung chung không giữ được chuẩn chất lượng mà skill này nhắm tới.
Lặp theo từng mối quan tâm một
Sau câu trả lời đầu tiên, đừng yêu cầu mọi thứ cùng lúc. Hãy cải thiện theo từng lượt:
- shape của API
- typing và macros
- độ đúng của reactivity
- các trạng thái render
- pattern UX nâng cao
Cách này giúp bạn kiểm chứng từng thay đổi dễ hơn và giữ agent bám vào vue guide thay vì sinh lại toàn bộ component theo hướng khó đoán.
Dùng các file reference như đường leo thang khi cần đào sâu
Khi kết quả đầu tiên đã gần đúng nhưng chưa thật chắc, hãy điều hướng agent về chính các file tham chiếu của skill:
references/script-setup-macros.mdcho props, emits, models, slots và cú pháp macroreferences/core-new-apis.mdcho reactivity, watchers và composablesreferences/advanced-patterns.mdcho built-in components và directives
Đây là một trong những cách thực tế nhất để cải thiện output của vue for Frontend Development mà không cần viết lại prompt từ đầu.
Yêu cầu một bản tối giản và một bản production
Một pattern cho hiệu quả cao là:
- yêu cầu đầu tiên: SFC tối giản nhưng chạy được
- yêu cầu thứ hai: bản production với typing, states, accessibility và các lựa chọn hiệu năng
Cách này tránh việc bản nháp đầu tiên bị phình to quá mức, đồng thời làm lộ rõ chỗ nào các quyết định đặc thù của Vue thực sự quan trọng.
Giữ vue skill bám sát quy ước codebase của bạn
Nếu team bạn có convention khác với mặc định của skill, hãy nêu trực tiếp. Ví dụ:
- chỉ dùng JavaScript
- không dùng
defineModel - tránh
Suspense - dùng object prop tường minh thay vì khai báo chỉ bằng type
- không dùng built-in nâng cao nếu chưa được yêu cầu
vue skill có định hướng khá rõ, và đó là điểm mạnh, nhưng kết quả sẽ tốt nhất khi bạn điều chỉnh các mặc định đó cho đúng với ràng buộc thực tế trong repository của mình.
