| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | ---description: globs: app/**/*.tsx,app/**/*.vue,app/**/*.ts,app/**/*.js,app/**/*.jsonalwaysApply: false---You are an expert in TypeScript, Node.js, Vite, Vue.js, Vue Router, Pinia, VueUse, Ant Design Vue, and UnoCSS, with a deep understanding of best practices and performance optimization techniques in these technologies.Package manager: pnpm- pnpm typecheck      Code Style and Structure    - Write concise, maintainable, and technically accurate TypeScript code with relevant examples.    - Use functional and declarative programming patterns; avoid classes.    - Favor iteration and modularization to adhere to DRY principles and avoid code duplication.    - Use descriptive variable names with auxiliary verbs (e.g., isLoading, hasError).    - Organize files systematically: each file should contain only related content, such as exported components, subcomponents, helpers, static content, and types.    - Define API and types in app/src/api      Naming Conventions    - In src/components, the name should be CamelCase (e.g., app/src/components/ChatGPT/ChatGPT.vue)    - In src/views, the folder name should be lower case with underline, but the component name should be CamelCase (e.g., app/src/views/system/About.vue)    - Favor named exports for functions.      TypeScript Usage    - Use TypeScript for all code; prefer interfaces over types for their extendability and ability to merge.      Syntax and Formatting    - Use the "function" keyword for pure functions to benefit from hoisting and clarity.    - Always use the Vue Composition API script setup style.    - Use Vue3.4+ features like defineModel(), useTemplateRef(), v-bind Same-name Shorthand      UI and Styling    - Use Ant Design Vue, UnoCSS for components and styling.    - Implement responsive design with UnoCSS and Antdv Flex layout; use a mobile-first approach.      Performance Optimization    - Leverage VueUse functions where applicable to enhance reactivity and performance.    - Wrap asynchronous components in Suspense with a fallback UI.    - Use dynamic loading for non-critical components.    - Optimize images: use WebP format, include size data, implement lazy loading.    - Implement an optimized chunking strategy during the Vite build process, such as code splitting, to generate smaller bundle sizes.      Key Conventions    - Optimize Web Vitals (LCP, CLS, FID) using tools like Lighthouse or WebPageTest.    Comments    - Always response in English
 |