Loading...
Loading...
Found 34 Skills
Load non-critical resources when a user interacts with UI requiring it.
Optimise Grafana app plugin bundle size using React.lazy, Suspense, and webpack code splitting. Use when the user asks to reduce plugin bundle size, optimise module.js, add code splitting, improve initial plugin load performance, split plugin chunks, lazy load plugin pages, or help implement lazy loading in a Grafana app plugin. Triggers on phrases like "optimise plugin bundle size", "module.js is too large", "plugin is slow to load", "code split the plugin", "reduce initial JS payload", or "help me with Suspense in my plugin".
Type-safe, file-based React routing with route loaders, search params validation, code splitting, preloading, navigation, route context, and TanStack Query integration. Use when setting up file-based routing, adding search params validation, implementing route loaders, code splitting routes, configuring virtual file routes, protecting routes with auth guards, or fixing type registration errors. Use for router setup, navigation patterns, URL state management, data loading.
Reduces JS/TS bundle size via unused deps, tree-shaking, code splitting with keep/discard
React performance optimization patterns - React.memo, useMemo, useCallback, code splitting, and preventing unnecessary re-renders
React Suspense for data fetching, code splitting, and async operations. Covers Suspense boundaries, lazy loading, streaming SSR, Error Boundaries, suspense-enabled data libraries, and progressive loading patterns. USE WHEN: user mentions "Suspense", "lazy loading", "React.lazy", "code splitting", "streaming SSR", "loading states", asks about "async components", "fallback UI" DO NOT USE FOR: React 17 and earlier (limited Suspense support), Class components, Non-React frameworks
Teaches async component loading in Vue for performance optimization. Use when you have heavy components that aren't needed on initial render and can be loaded on demand.
Best practices and guidelines for Webpack module bundler configuration, optimization, and development workflows
Dynamically load components based on the current route to reduce initial bundle size.
Split a large ***plain module into smaller modules grouped by logical domain. The resulting modules are connected via a requires chain so that functionality is 100% preserved. Use when a module has grown too large and its functional specs span multiple distinct concerns that would be clearer as separate modules.