vue-best-practices
1
总安装量
1
周安装量
#42711
全站排名
安装命令
npx skills add https://github.com/hello-lizhihua/skills_zh-cn --skill vue-best-practices
Agent 安装分布
trae
1
Skill 文档
Vue 3 æä½³å®è·µã常è§é·é±åæ§è½ä¼åã
ååºå¼
- å¨èæ¬ä¸è®¿é® ref() 弿¶ä¸å¸¦ .value â åè§ ref-value-access
- è§£æ reactive() 对象ï¼ä¸¢å¤±ååºæ§ â åè§ reactive-destructuring
- ä¸ºç¶æéæ© ref() å reactive() â åè§ prefer-ref-over-reactive
- è®¿é®æ°ç»åéåå ç ref â åè§ refs-in-collections-need-value
- 大对象æå¤é¨åºæ°æ®å¼é â åè§ shallow-ref-for-performance
- 卿¨¡æ¿è¡¨è¾¾å¼ä¸ä½¿ç¨åµå¥ ref â åè§ template-ref-unwrapping-top-level
- ä½¿ç¨ === è¿ç®ç¬¦æ¯è¾ååºå¼å¯¹è±¡ â åè§ reactivity-proxy-identity-hazard
- åºå®ä¾å¨ååºå¼ç¶æä¸æå â åè§ reactivity-markraw-for-non-reactive
- ææä¾¦å¬å¨å¯¹æ¯æ¬¡ç¶ææ´æ¹é½è§¦å â åè§ reactivity-same-tick-batching
- éæå¤é¨ç¶æç®¡çåº â åè§ reactivity-external-state-integration
- 追踪æå¤çéæ°æ¸²æåç¶ææ´æ° â åè§ reactivity-debugging-hooks
- ä½¿ç¨ watchEffect è䏿¯ computed æ´¾çç¶æ â åè§ reactivity-computed-over-watcheffect-mutations
计ç®å±æ§
- 计ç®å±æ§ getter è¿è¡ API è°ç¨æçªå â åè§ computed-no-side-effects
- çªå计ç®å±æ§å¼å¯¼è´æå¤ä¸¢å¤±æ´æ¹ â åè§ computed-return-value-readonly
- 计ç®å±æ§æªæé¢ææ´æ° â åè§ computed-conditional-dependencies
- æåºæå转æ°ç»ç ´ååå§æ°æ® â åè§ computed-array-mutation
- æè´µæä½å¨æ¯æ¬¡æ¸²ææ¶è¿äºé¢ç¹å°è¿è¡ â åè§ computed-vs-methods-caching
- è¯å¾å计ç®å±æ§ä¼ éåæ° â åè§ computed-no-parameters
- 夿æ¡ä»¶å¯¼è´å èç±»ç»å®èè¿ â åè§ computed-properties-for-class-logic
侦å¬å¨
- éè¦ä¾¦å¬ååºå¼å¯¹è±¡å±æ§ â åè§ watch-reactive-property-getter
- 大ååµå¥æ°æ®ç»æå¯¼è´æ§è½é®é¢ â åè§ watch-deep-performance
- 弿¥æä½è¢«éæ§æ°æ®è¦ç â åè§ watch-async-cleanup
- å¨å¼æ¥åè°ä¸å建侦å¬å¨ â åè§ watch-async-creation-memory-leak
- await ä¹å访é®çä¾èµé¡¹æªè¢«è¿½è¸ª â åè§ watcheffect-async-dependency-tracking
- éè¦å¨ä¾¦å¬å¨ä¸è®¿é®æ´æ°åç DOM â åè§ watch-flush-timing
- ä¸ç¡®å®æ¯ä½¿ç¨ watch è¿æ¯ watchEffect â åè§ watch-vs-watcheffect
- éå¤åå§è°ç¨å侦å¬å¨åè° â åè§ watch-immediate-option
- æ æ³æ£ç¡®æ¯è¾æ°æ§å¼ â åè§ watch-deep-same-object-reference
- æ¨¡æ¿ ref æ¾ç¤ºä¸º null æéæ§ â åè§ watcheffect-flush-post-for-refs
ç»ä»¶
- prop å¼è¢«åç»ä»¶æ´æ¹ â åè§ props-are-read-only
- ç¶ç»ä»¶æ æ³å¨ script setup ä¸è®¿é®åç»ä»¶ ref æ°æ® â åè§ component-ref-requires-defineexpose
- åç»ä»¶æåºâç»ä»¶æªæ¾å°âé误 â åè§ local-components-not-in-descendants
- ç¹å»çå¬å¨æªå¨èªå®ä¹ç»ä»¶ä¸è§¦å â åè§ click-events-on-components
- HTML 模æ¿è§£æç ´å Vue ç»ä»¶è¯æ³ â åè§ in-dom-template-parsing-caveats
- ç¥ç¶æ¯ç»ä»¶æ æ³çå¬åç»ä»¶ååºçäºä»¶ â åè§ component-events-dont-bubble
- ç±äºå½åå²çªå¯¼è´æ¸²æé误çç»ä»¶ â åè§ component-naming-conflicts
- åºå Vue ç»ä»¶ä¸åçå ç´ â åè§ component-naming-pascalcase
- ç¶ç»ä»¶æ ·å¼æªåºç¨äºå¤æ ¹ç»ä»¶ â åè§ multi-root-component-class-attrs
- éå½ç»ä»¶éè¦å¼ç¨èªèº« â åè§ self-referencing-component-name
- æç»å å 嫿ªä½¿ç¨çç»ä»¶ â åè§ prefer-local-component-registration
- éè¿ç»ä»¶ ref 访é®è¿è¡ç´§è¦å â åè§ prefer-props-emit-over-component-refs
Props & Emits
- å¸å° prop æªæé¢æè§£æ â åè§ prop-boolean-casting-order
- prop æ´æ¹æ¶ç»åå¼å½æ°æªæ´æ° â åè§ prop-composable-reactivity-loss
- defineProps ä¸å¼ç¨çåé导è´é误 â åè§ prop-defineprops-scope-limitation
- è§£æç prop æªæ´æ°ä¾¦å¬å¨ â åè§ prop-destructured-watch-getter
- prop éªè¯éè¦ç»ä»¶å®ä¾æ°æ® â åè§ prop-validation-before-instance
- ç»ä»¶ååºæªå£°æçäºä»¶å¯¼è´è¦å â åè§ declare-emits-for-documentation
- defineEmits å¨å½æ°ææ¡ä»¶å é¨ä½¿ç¨ â åè§ defineEmits-must-be-top-level
- defineEmits åæ¶å ·æç±»ååè¿è¡æ¶åæ° â åè§ defineEmits-no-runtime-and-type-mixed
- 模æ¿åèæ¬ä¸çäºä»¶åç§°ä¸ä¸è´ â åè§ emit-kebab-case-in-templates
- äºä»¶è´è½½å¨å¼åæé´éè¦éªè¯ â åè§ emit-validation-for-complex-payloads
- åçäºä»¶çå¬å¨æªååºç¹å» â åè§ native-event-collision-with-emits
- ç¹å»æ¶ç»ä»¶äºä»¶è§¦å两次 â åè§ undeclared-emits-double-firing
模æ¿
- å°ä¸åä¿¡ä»»çç¨æ·å 容渲æä¸º HTML â åè§ v-html-xss-security
- è¿æ»¤æææ¡ä»¶å°éèå表项 â åè§ no-v-if-with-v-for
- å表项æå¤æ¶å¤±æäº¤æ¢ç¶æ â åè§ v-for-key-attribute
- 使ç¨è¯å¥æ¶åºç°æ¨¡æ¿ç¼è¯é误 â åè§ template-expressions-restrictions
- 卿æä»¤åæ°æ æ³æ£å¸¸å·¥ä½ â åè§ dynamic-argument-constraints
- 模æ¿ä¸ç彿°æå¤ä¿®æ¹æ°æ® â åè§ template-functions-no-side-effects
- v-else å ç´ æ»æ¯æ æ¡ä»¶æ¸²æ â åè§ v-else-must-follow-v-if
- 循ç¯ä¸çåç»ä»¶æ¾ç¤ºæªå®ä¹æ°æ® â åè§ v-for-component-props
- æåºæåè½¬åæ°ç»é¡ºåºæ´æ¹ â åè§ v-for-computed-reverse-sort
- èå´è¿ä»£åºç°å·®ä¸é误 â åè§ v-for-range-starts-at-one
- è¿æ»¤ææåºåè¡¨å¯¼è´æ§è½é®é¢ â åè§ v-for-use-computed-for-filtering
- “Cannot read property of undefined” è¿è¡æ¶é误 â åè§ v-if-null-check-order
- å¨ v-if å v-show ä¹é´éæ©ç¨äºæ¡ä»¶æ¸²æ â åè§ v-if-vs-v-show-performance
- v-show æ v-else å¨ template å ç´ ä¸ä¸èµ·ä½ç¨ â åè§ v-show-template-limitation
æ¨¡æ¿ Ref
- å ç´ ææ¡ä»¶éèæ¶ ref å为 null â åè§ template-ref-null-with-v-if
- 循ç¯ä¸ ref æ°ç»ç´¢å¼ä¸æ°æ®æ°ç»ä¸å¹é â åè§ template-ref-v-for-order
- éææ¨¡æ¿ ref åç§°å¨ä»£ç ä¸éé»ä¸æ â åè§ use-template-ref-vue35
表å & v-model
- ä½¿ç¨ v-model æ¶åå§è¡¨å弿ªæ¾ç¤º â åè§ v-model-ignores-html-attributes
- Textarea å å®¹æ´æ¹æªæ´æ° ref â åè§ textarea-no-interpolation
- iOS ç¨æ·æ æ³éæ©ä¸æå表第ä¸ä¸ªé项 â åè§ select-initial-value-ios-bug
- ç¶åç»ä»¶å ·æä¸åçå¼ â åè§ define-model-default-value-sync
- éè¦å¨åç»ä»¶ä¸å¤ç v-model 修饰符 â åè§ definemodel-hidden-modifier-props
- å¯¹è±¡å±æ§æ´æ¹æªåæ¥å°ç¶ç»ä»¶ â åè§ definemodel-object-mutation-no-emit
- éè¦å¨æ´æ¹åç«å³ä½¿ç¨æ´æ°çå¼ â åè§ definemodel-value-next-tick
- 䏿/æ¥æè¾å ¥ç宿¶æç´¢/éªè¯æå â åè§ v-model-ime-composition
- æ°åè¾å ¥è¿å空å符串è䏿¯é¶ â åè§ v-model-number-modifier-behavior
- å° Vue 2 ç»ä»¶è¿ç§»å° Vue 3 â åè§ v-model-vue3-breaking-changes
- èªå®ä¹å¤éæ¡å¼æªå¨è¡¨åä¸æäº¤ â åè§ checkbox-true-false-value-form-submission
äºä»¶ & 修饰符
- 龿¥å¤ä¸ªäºä»¶ä¿®é¥°ç¬¦äº§çæå¤ç»æ â åè§ event-modifier-order-matters
- éè¦åªå¤ç䏿¬¡åä¸äºä»¶ â åè§ event-once-modifier-for-single-use
- é®çå¿«æ·é®ä½¿ç¨é颿ç修饰符ç»å触å â åè§ exact-modifier-for-precise-shortcuts
- é®çå¿«æ·é®ä¸éç³»ç»ä¿®é¥°é®è§¦å â åè§ keyup-modifier-timing
- 使ç¨å·¦æé¼ æ æéæ åè¾å ¥è®¾å¤ â åè§ mouse-button-modifiers-intent
- 黿¢é»è®¤æµè§å¨è¡ä¸ºåæ»å¨æ§è½å¨ä¸èµ· â åè§ no-passive-with-prevent
çå½å¨æ
- çå½å¨æé©åä¸å¼æ¥æ§è¡ â åè§ lifecycle-hooks-synchronous-registration
- ç»ä»¶æè½½å DOM 访é®å¤±è´¥ â åè§ lifecycle-dom-access-timing
- æªç§»é¤äºä»¶çå¬å¨å¯¼è´å åæ³æ¼ â åè§ cleanup-side-effects
- SSR 渲æä¸å®¢æ·ç«¯æ¿æ´»ä¸å â åè§ lifecycle-ssr-awareness
- æè´µæä½æå¤§å°é使§è½ â åè§ updated-hook-performance
- ç¶ææ´æ¹å DOM 读åè¿åéæ§å¼ â åè§ dom-update-timing-nexttick
ææ§½
- å¨ææ§½å 容ä¸è®¿é®åç»ä»¶æ°æ® â åè§ slot-render-scope-parent-only
- æ··å使ç¨å ·åææ§½åä½ç¨åææ§½ â åè§ slot-named-scoped-explicit-default
- å¨åç HTML å ç´ ä¸ä½¿ç¨ v-slot â åè§ slot-v-slot-on-components-or-templates-only
- 空å è£ å ç´ ä¸å¿ è¦å°æ¸²æ â åè§ slot-conditional-rendering-with-slots
- ä½ç¨åææ§½ prop ç¼ºä¹ TypeScript ç±»åå®å ¨ â åè§ slot-define-slots-for-typescript
- æ¸²ææ²¡æé»è®¤å¼ç空ç»ä»¶ææ§½ â åè§ slot-fallback-content-default-values
- å è£ ç»ä»¶ç ´ååææ§½åè½ â åè§ slot-forwarding-to-child-components
- æ··æ·åªä¸ªææ§½å 容å»åªé â åè§ slot-implicit-default-content
- ææä½ç¨åææ§½ prop 䏿 name 屿§ â åè§ slot-name-reserved-prop
- 卿 渲æç»ä»¶åç»åå¼å½æ°ä¹é´éæ© â åè§ slot-renderless-components-vs-composables
Provide/Inject
- æä¾è æ´æ¹æ¶æ³¨å ¥ç弿ªæ´æ° â åè§ provide-inject-reactivity-not-automatic
- 弿¥æä½åè°ç¨ provide å¤±è´¥ä¸æ å£°æ¯ â åè§ provide-inject-synchronous-setup
- å符串é®å¨å¤§ååºç¨ä¸å²çª â åè§ provide-inject-symbol-keys
- 追踪æä¾ç弿¥èªä½å¤ â åè§ provide-inject-debugging-challenges
- å¤ä¸ªç»ä»¶å ±äº«ç¸åçé»è®¤å¯¹è±¡ â åè§ provide-inject-default-value-factory
- ç¶æçªå忣å¨ç»ä»¶ä¹é´ â åè§ provide-inject-mutations-in-provider
- éè¿è®¸å¤ç»ä»¶å±ä¼ é props â åè§ avoid-prop-drilling-use-provide-inject
Attrs
- å é¨åéä¼ äºä»¶å¤çå¨é½æ§è¡ â åè§ attrs-event-listener-merging
- å¨ JavaScript 代ç ä¸è®¿é®è¿åç¬¦å±æ§ â åè§ attrs-hyphenated-property-access
- ä½¿ç¨ watch() 侦å¬éä¼ å±æ§æ´æ¹ â åè§ attrs-not-reactive
- æ¾å¼å±æ§è¢«éä¼ å¼è¦ç â åè§ fallthrough-attrs-overwrite-vue3
- 屿§åºç¨äºå è£ å¨ä¸çé误å ç´ â åè§ inheritattrs-false-for-wrapper-components
ç»åå¼å½æ°
- ç»åå¼å½æ°å ·æå½±åå¤é¨ç¶æçæå¤å¯ä½ç¨ â åè§ composable-avoid-hidden-side-effects
- å¨ setup ä¸ä¸æä¹å¤æå¼æ¥è°ç¨ç»åå¼å½æ° â åè§ composable-call-location-restrictions
- ä»è¾å°ç䏿³¨ç»åå¼å½æ°æå»ºå¤æé»è¾ â åè§ composable-composition-pattern
- ä¸ä¸è´çç»åå¼å½æ°åç§°æè§£æä¸¢å¤±ååºæ§ â åè§ composable-naming-return-pattern
- ç»åå¼å½æ°æè®¸å¤å¯éåæ°æä»¤äººå°æçåæ°é¡ºåº â åè§ composable-options-object-pattern
- éè¦é²æ¢ä¸åæ§å¶çç»åå¼å½æ°ç¶æçªå â åè§ composable-readonly-state
- è¾å ¥æ´æ¹æ¶ç»åå¼å½æ°ååºå¼ä¾èµé¡¹æªæ´æ° â åè§ composable-tovalue-inside-watcheffect
- ä¸ç¡®å®é»è¾å±äºç»åå¼å½æ°è¿æ¯å·¥å ·å½æ° â åè§ composable-vs-utility-functions
ç»åå¼ API
- ä¼åç产å 大å°åæ§è½ â åè§ composition-api-bundle-size-minification
- ç»åå¼ API 代ç åå¾åæ£ä¸é¾ä»¥ç»´æ¤ â åè§ composition-api-code-organization
- ä¿®å¤ mixin ä¸çå½åå²çªåä¸æç¡®çæ°æ®æ¥æº â åè§ composition-api-mixins-replacement
- é误å°å°å½æ°å¼æ¨¡å¼åºç¨äº Vue ç¶æ â åè§ composition-api-not-functional-programming
- 鿥è¿ç§»å¤§åéé¡¹å¼ API 代ç åº â åè§ composition-api-options-api-coexistence
- 弿¥æä½åçå½å¨æé©åéé»å¤±è´¥ â åè§ composition-api-script-setup-async-context
- æ¥èª Reactï¼ä¸å¿ è¦å°è¿åº¦è®¾è®¡ Vue æ¨¡å¼ â åè§ composition-api-vs-react-hooks-differences
- ç¶ç»ä»¶ ref æ æ³è®¿é®å ¬å¼ç屿§ â åè§ define-expose-before-await
æä»¤
- è·¨æä»¤é©ååå¨ç¶æ â åè§ directive-arguments-read-only
- å°èªå®ä¹æä»¤åºç¨äº Vue ç»ä»¶ â åè§ directive-avoid-on-components
- 卿令ä¸å建é´éæäºä»¶çå¬å¨ â åè§ directive-cleanup-in-unmounted
- ç®åå ·æç¸åè¡ä¸ºçæä»¤ â åè§ directive-function-shorthand
- å¨ script setup ä¸ä½¿ç¨èªå®ä¹æä»¤ â åè§ directive-naming-v-prefix
- å¨èªå®ä¹æä»¤åå ç½®æä»¤ä¹é´éæ© â åè§ directive-prefer-declarative-templating
- 卿令åç»ä»¶ä¹é´å³å® â åè§ directive-vs-component-decision
- å° Vue 2 æä»¤è¿ç§»å° Vue 3 â åè§ directive-vue2-migration-hooks
è¿æ¸¡
- å°å¤ä¸ªå ç´ æç»ä»¶å è£ å¨è¿æ¸¡ä¸ â åè§ transition-single-element-slot
- å¨ç¸åå ç´ ç±»åä¹é´è¿æ¸¡èæ å¨ç» â åè§ transition-key-for-same-element
- ä½¿ç¨ JavaScript å¨ç»èä¸è°ç¨ done åè° â åè§ transition-js-hooks-done-callback
- ä½¿ç¨ TransitionGroup å¨ç»ååè¡¨èæ²¡æå¯ä¸é® â åè§ transition-group-key-requirement
- æå¨çå表å¨ç»å¯¼è´æ§è½é®é¢ â åè§ transition-animate-transform-opacity
- ç§»å¨å¨ç»å¨å èå表å ç´ ä¸å¤±è´¥ â åè§ transition-group-flip-inline-elements
- å表项跳è·è䏿¯å¹³æ»å¨ç» â åè§ transition-group-move-animation-position-absolute
- Vue 2 å° Vue 3 è¿æ¸¡å¸å±æå¤ä¸æ â åè§ transition-group-no-default-wrapper-vue3
- è¯å¾ä½¿ç¨ mode 屿§å¯¹å表å¨ç»è¿è¡æåº â åè§ transition-group-no-mode-prop
- 为å表项å¨ç»å建级èå»¶è¿ â åè§ transition-group-staggered-animations
- è¿æ¸¡æé´å ç´ éå æå¸å±è·³è· â åè§ transition-mode-out-in
- åµå¥è¿æ¸¡å¨ç»è¿æ©åæ â åè§ transition-nested-duration
- 带æä½ç¨åæ ·å¼çå¯å¤ç¨è¿æ¸¡ç»ä»¶ä¸æ â åè§ transition-reusable-scoped-style
- RouterView è¿æ¸¡å¨é¡µé¢å è½½æ¶æå¤å¨ç»å â åè§ transition-router-view-appear
- æ··å CSS è¿æ¸¡åå¨ç»å¯¼è´æ¶é´é®é¢ â åè§ transition-type-when-mixed
- ç»ä»¶æ¸ çå¨å¿«éè¿æ¸¡æ¿æ¢æé´æªè§¦å â åè§ transition-unmount-hook-timing
å¨ç»
- éè¦å¨ç»åä¿çå¨ DOM ä¸çå ç´ â åè§ animation-class-based-technique
- å å®¹æ´æ¹æ¶å¨ç»æªè§¦å â åè§ animation-key-for-rerender
- 使ç¨ç¨æ·è¾å ¥æå»ºäº¤äºå¼å¨ç» â åè§ animation-state-driven-technique
- å¨ç»ååè¡¨æ´æ¹å¯¼è´ææ¾çæ»å â åè§ animation-transitiongroup-performance
KeepAlive
- ä½¿ç¨ KeepAlive èæ²¡æéå½çç¼åéå¶ææ¸ ç â åè§ keepalive-memory-management
- KeepAlive include/exclude 屿§ä¸ç¼åç»ä»¶ä¸å¹é â åè§ keepalive-component-name-requirement
- éè¦ä»¥ç¼ç¨æ¹å¼ä» KeepAlive ç¼åä¸å é¤ç»ä»¶ â åè§ keepalive-no-cache-removal-vue3
- æææ°é²é¡µé¢æ°æ®æ¶ç¨æ·çå°éæ§çç¼åå 容 â åè§ keepalive-router-fresh-vs-cached
- åç»ä»¶å¨åµå¥ Vue Router è·¯ç±ä¸æè½½ä¸¤æ¬¡ â åè§ keepalive-router-nested-double-mount
- å° KeepAlive ä¸ Transition å¨ç»ç»åä½¿ç¨æ¶å åå¢é¿ â åè§ keepalive-transition-memory-leak
- å¨å¨æç»ä»¶ä¹é´åæ¢æ¶ç¶æéç½® â åè§ dynamic-components-with-keepalive
弿¥ç»ä»¶
- 设置 Vue Router è·¯ç±ç»ä»¶å è½½ â åè§ async-component-vue-router
- 弿¥ç»ä»¶éé¡¹è¢«ç¶ Suspense å¿½ç¥ â åè§ async-component-suspense-control
- å è½½ç»ä»¶æ¶ç½ç»æ éæè¶ æ¶ â åè§ async-component-error-handling
- æ¹å SSR åºç¨çå¯äº¤äºæ¶é´ â åè§ async-component-hydration-strategies
- ç»ä»¶éæ°æ¿æ´»åæ¨¡æ¿ ref æªå®ä¹ â åè§ async-component-keepalive-ref-issue
- å¿«éç½ç»ä¸å 载微è°å¨éªç â åè§ async-component-loading-delay
渲æå½æ°
- æ¥èª setup çæ¸²æå½æ°æªååºå¼æ´æ° â åè§ rendering-render-function-return-from-setup
- åä¸ vnode 卿 ä¸åºç°å¤æ¬¡ â åè§ render-function-vnodes-must-be-unique
- 卿²¡æé®ç渲æå½æ°ä¸æ¸²æå表 â åè§ render-function-v-for-keys-required
- 卿¸²æå½æ°ä¸å®ç° .stop, .prevent â åè§ render-function-event-modifiers
- 卿¸²æå½æ°ä¸çç»ä»¶ä¸è¿è¡ååç»å® â åè§ render-function-v-model-implementation
- 卿¸²æå½æ°ä¸ä¸ºç»ä»¶ä½¿ç¨å符串åç§° â åè§ rendering-resolve-component-for-string-names
- è®¿é® vnode å é¨ï¼å¦ el æ shapeFlag â åè§ render-function-avoid-internal-vnode-properties
- å建ç®åçæ ç¶æå±ç¤ºç»ä»¶ â åè§ render-function-functional-components
- 卿¸²æå½æ°ä¸åºç¨èªå®ä¹æä»¤ â åè§ render-function-custom-directives
- æ¥èªä¾¦å¬å¨ææ·±åº¦ä¾¦å¬å¨çè¿å¤éæ°æ¸²æ â åè§ rendering-excessive-rerenders-watch-vs-computed
- éæ©æ¸²æå½æ°è鿍¡æ¿ â åè§ rendering-prefer-templates-over-render-functions
- å° Vue 2 渲æå½æ°è¿ç§»å° Vue 3 â åè§ rendering-render-function-h-import-vue3
- é误å°å°ææ§½å å®¹ä¼ éç» h() â åè§ rendering-render-function-slots-as-functions
- çè§£ Vue ç vdom ä¼åå â åè§ rendering-understand-vdom-block-structure
Teleport
- å¨ DOM 䏿ªæ¾å° Teleport ç®æ å ç´ â åè§ teleport-target-must-exist
- ä¼ éçå å®¹ç ´å SSR æ¿æ´» â åè§ teleport-ssr-hydration
- æ¨¡ææ¡å ç¶çº§ CSS 忢è䏿 â åè§ teleport-css-positioning-issues
- å 容å¨ç§»å¨è®¾å¤ä¸éè¦ä¸åçå¸å± â åè§ teleport-disabled-for-responsive
- ä¸ç¡®å® props/events æ¯å¦éè¿ teleport å·¥ä½ â åè§ teleport-logical-hierarchy-preserved
- å¤ä¸ªæ¨¡ææ¡é对åä¸å®¹å¨ â åè§ teleport-multiple-to-same-target
- ä½ç¨åæ ·å¼æªåºç¨äºä¼ éçå 容 â åè§ teleport-scoped-styles-limitation
Suspense
- éè¦å¤çæ¥èª Suspense ç»ä»¶ç弿¥é误 â åè§ suspense-no-builtin-error-handling
- æ³è¦ä»¥ç¼ç¨æ¹å¼è¿½è¸ª Suspense å è½½ç¶æ â åè§ suspense-events-for-state-tracking
- è§åç产åºç¨ä¸ç Suspense ä½¿ç¨ â åè§ suspense-experimental-api-stability
- å å®¹æ´æ¹æ¶æªæ¾ç¤ºåé â åè§ suspense-fallback-not-immediate-on-revert
- å° Suspense ç»ä»¶åµå¥å¨ä¸èµ· â åè§ suspense-nested-suspensible-prop
- å° Suspense ä¸ RouterãTransitionãKeepAlive ç»åä½¿ç¨ â åè§ suspense-nesting-order-with-router
- åµå¥å¼æ¥ç»ä»¶æªæ¾ç¤ºå è½½æç¤ºå¨ â åè§ suspense-revert-only-on-root-change
- å个 Suspense ä¸çå¤ä¸ªå¼æ¥ç»ä»¶ â åè§ suspense-single-child-requirement
- 卿å¡å¨ç«¯æ¸²æä¸ä½¿ç¨ Suspense â åè§ suspense-ssr-hydration-issues
TypeScript
- å¨ç»åå¼ API ç»ä»¶ä¸ä½¿ç¨ TypeScript 声æ props â åè§ ts-defineprops-type-based-declaration
- 为å¯å prop ç±»åæä¾é»è®¤å¼ â åè§ ts-withdefaults-mutable-factory-function
- ä½¿ç¨ ref è§£å å ³æ³¨ç¹ç±»ååååºå¼ç¶æ â åè§ ts-reactive-no-generic-argument
- ç»ä»¶æè½½åè®¿é® DOM å ç´ â åè§ ts-template-ref-null-handling
- ç±»ååå Vue ç»ä»¶ç ref â åè§ ts-component-ref-typeof-instancetype
- 使ç¨å ·æ TypeScript æ¯æçèªå®ä¹æä»¤ â åè§ ts-custom-directive-type-augmentation
- 使ç¨å®å ¨ç±»åå®å ¨å£°æç»ä»¶äºä»¶ â åè§ ts-defineemits-type-based-syntax
- å¨ TypeScript ä¸å¤çå¯éå¸å° props â åè§ ts-defineprops-boolean-default-false
- å¨ defineProps ä¸å®å ¨ä½¿ç¨å¯¼å ¥çç±»å â åè§ ts-defineprops-imported-types-limitations
- 使ç¨ä¸¥æ ¼ TypeScript æ£æ¥å¤ç DOM äºä»¶ â åè§ ts-event-handler-explicit-typing
- å¨å ·æç±»åå®å ¨çç»ä»¶ä¹é´å ±äº«æ°æ® â åè§ ts-provide-inject-injection-key
- å¨ååºå¼ç¶æä¸åå¨ Vue ç»ä»¶ â åè§ ts-shallowref-for-dynamic-components
- å¨ Vue 模æ¿ä¸ä½¿ç¨èåç±»å â åè§ ts-template-type-casting
SSR
- ç¨æ·æ°æ®å¨æå¡å¨è¯·æ±ä¹é´æ³æ¼ â åè§ state-ssr-cross-request-pollution
- HTML 卿å¡å¨å客æ·ç«¯æ¸²æä¹é´ä¸å â åè§ ssr-hydration-mismatch-causes
- 代ç 卿å¡å¨åæµè§å¨ç¯å¢ä¸è¿è¡ â åè§ ssr-platform-specific-apis
- èªå®ä¹æä»¤æªæ¾ç¤ºå¨æå¡å¨æ¸²æç HTML ä¸ â åè§ ssr-custom-directive-getssrprops
æ§è½
- ç¶ææ´æ¹æé´è®¸å¤å表项ä¸å¿ è¦å°éæ°æ¸²æ â åè§ perf-props-stability-update-optimization
- 渲ææç¾ä¸åç项ç®å¯¼è´ DOM æ§è½é®é¢ â åè§ perf-virtualize-large-lists
- éæå 容卿¯æ¬¡ç¶ç»ä»¶æ´æ°æ¶éæ°è¯ä¼° â åè§ perf-v-once-v-memo-directives
- å表æ§è½å 深度åµå¥ç»ä»¶ç»æèä¸é â åè§ perf-avoid-component-abstraction-in-lists
- è¿å对象ç计ç®å±æ§æå¤è§¦åå¯ä½ç¨ â åè§ perf-computed-object-stability
- 页é¢å è½½ææ å客æ·ç«¯ JavaScript æ§è¡å»¶è¿å½±å â åè§ perf-ssr-ssg-for-page-load
SFC (åæä»¶ç»ä»¶)
- è¯å¾ä»ç»ä»¶èæ¬å使ç¨å½åå¯¼åº â åè§ sfc-named-exports-forbidden
- å¯å¨å ·ææå»ºè®¾ç½®ç Vue é¡¹ç® â åè§ sfc-recommended-for-build-projects
- 使ç¨ä½ç¨å CSS 为åç»ä»¶å ç´ è®¾ç½®æ ·å¼ â åè§ sfc-scoped-css-child-component-styling
- ä¸ºä½¿ç¨ v-html å¨ææ·»å çå å®¹è®¾ç½®æ ·å¼ â åè§ sfc-scoped-css-dynamic-content
- ä¼åä½ç¨å CSS 鿩卿§è½ â åè§ sfc-scoped-css-performance
- 为éè¿ç»ä»¶ææ§½ä¼ éçå å®¹è®¾ç½®æ ·å¼ â åè§ sfc-scoped-css-slot-content
- æ´æ¹ååé卿¨¡æ¿ä¸æªæ´æ° â åè§ sfc-script-setup-reactivity
- ç»ç»ç»ä»¶æ¨¡æ¿ãé»è¾åæ ·å¼ â åè§ sfc-separation-of-concerns-colocate
- 使ç¨å±æ§åç§°ç»å®å èæ ·å¼ â åè§ style-binding-camelcase
- 使ç¨åç¬¦ä¸²è¿æ¥æå»º Tailwind ç±» â åè§ tailwind-dynamic-class-generation
æä»¶
- è°è¯å ¨å±å±æ§å¯¼è´å½åå²çªçåå â åè§ plugin-global-properties-sparingly
- æä»¶ä¸å·¥ä½æ inject è¿å undefined â åè§ plugin-install-before-mount
- å ¨å±å±æ§å¨ setup 彿°ä¸ä¸å¯ç¨ â åè§ plugin-prefer-provide-inject-over-global-properties
- ä»å¤´å¼å§å建ä¸ä¸ªæ°ç Vue æä»¶ â åè§ plugin-structure-install-method
- 鲿¢å¤ä¸ªæä»¶ä¹é´çå²çª â åè§ plugin-symbol-injection-keys
- å ¨å±å±æ§ç¼ºå° TypeScript èªå¨å®ææ¯æ â åè§ plugin-typescript-type-augmentation
åºç¨é ç½®
- mount è°ç¨ååºç¨é ç½®æ¹æ³ä¸å·¥ä½ â åè§ configure-app-before-mount
- éè¦å¨ mount åé¾å¼è°ç¨åºç¨é ç½®æ¹æ³ â åè§ mount-return-value
- Vue ä» æ§å¶ç¹å®é¡µé¢é¨å â åè§ multiple-app-instances
- å°å¨æç»ä»¶æ³¨åè¿ç§»å° Vite â åè§ dynamic-component-registration-vite