tezvyn:

Vue, Angular & Svelte

Vue 3, Nuxt, Angular, Svelte, SvelteKit

307 bites

More in Vue, Angular & Svelte — page 11

The Testing Trophy: Prioritize Integration Tests
Vue, Angular & Svelte2 min read

The Testing Trophy: Prioritize Integration Tests

The Testing Trophy flips the classic pyramid, arguing for "mostly integration tests" to maximize your return on investment. It's for UI apps where testing component interactions gives more confidence than isolated unit tests.

Cypress Component Testing: Test in a Real Browser
Vue, Angular & Svelte2 min read

Cypress Component Testing: Test in a Real Browser

Cypress component testing mounts your UI components in a real browser, not a simulated DOM, so you test them exactly as users see them. Use it for faster feedback on individual React, Vue, or Angular components.

Vue, Angular & Svelte2 min read

Unit Testing Vue Components with Vitest

Think of it as a two-part system: Vue Test Utils mounts your component in a virtual environment, and a runner like Vitest executes the test and reports pass/fail. Use this to verify a component's logic in isolation.

Angular Unit Testing: Jasmine & Karma
Vue, Angular & Svelte2 min read

Angular Unit Testing: Jasmine & Karma

Jasmine is your testing script (`expect(a).toBe(b)`), while Karma is the stage that runs it in a browser. This is Angular's default stack for unit testing components and services to ensure they work in isolation.

Partial Hydration: Interactive Islands in a Static Sea
Vue, Angular & Svelte2 min read

Partial Hydration: Interactive Islands in a Static Sea

Partial hydration makes sites faster by treating interactive UI as "islands" in a sea of static HTML, loading JavaScript only where needed. It's ideal for content-heavy pages. The biggest challenge is managing state between these isolated interactive islands.

Svelte's Legacy immutable={true} Optimization
Vue, Angular & Svelte2 min read

Svelte's Legacy immutable={true} Optimization

The `immutable={true}` option was a contract with the Svelte 3/4 compiler: you promise to never mutate data, and it uses fast referential checks for updates. It was a performance boost for immutable patterns.

Angular's ChangeDetectorRef: Manually Triggering Updates
Vue, Angular & Svelte2 min read

Angular's ChangeDetectorRef: Manually Triggering Updates

Angular's `ChangeDetectorRef` is your manual override for change detection. Use it when updates from outside Angular's zone (like third-party libraries) don't refresh the UI. The footgun is overuse, which can mask performance issues or cause lifecycle errors.

Vue, Angular & Svelte2 min read

JavaScript Bundle Analysis: Seeing Your App's Weight

Think of it as an X-ray for your compiled JavaScript, showing which libraries take up the most space. Use it to diagnose slow load times by finding large or duplicated dependencies.

List Virtualization: Rendering the Viewport, Not the Dataset
Vue, Angular & Svelte2 min read

List Virtualization: Rendering the Viewport, Not the Dataset

List virtualization renders only the visible slice of a huge dataset, keeping your app fast by maintaining a tiny DOM. Use it for long lists or infinite scroll feeds.

Angular's OnPush: Faster Apps by Doing Less
Vue, Angular & Svelte2 min read

Angular's OnPush: Faster Apps by Doing Less

OnPush tells Angular to only re-render a component when its inputs change or its own events fire, not on every global event. It's a key performance boost for large apps, but mutating an input object directly won't trigger a re-render, causing a stale UI.

Vue, Angular & Svelte2 min read

Vue Async Components: Defer Loading Until Needed

Vue async components defer loading a component's code until it's rendered, speeding up initial app loads. Use them for heavy components not needed right away, like modals or admin panels. The footgun is a blank UI if you don't handle loading/error states.

Vue, Angular & Svelte2 min read

Vue's v-once: Render Once, Then Ignore

Use `v-once` to render a part of your template exactly once. After the initial render, Vue treats it as static content, ignoring future data updates for that element and its children. This is a performance optimization for content that never needs to change.

Angular AOT: Compile Before the Browser
Vue, Angular & Svelte2 min read

Angular AOT: Compile Before the Browser

Angular's AOT compiler converts your app into efficient JavaScript during the build process, not in the browser. This means faster rendering and smaller bundles, as the compiler itself isn't shipped.

Vue, Angular & Svelte2 min read

Svelte Preprocessors: Write in Any Language

A Svelte preprocessor is a translator, converting code like TypeScript or SCSS into plain JS and CSS before compilation. This lets you use advanced tooling in `.svelte` files. The footgun is forgetting to configure it, leading to syntax errors.

Vue, Angular & Svelte2 min read

Vue Plugins: Add App-Wide Functionality

A Vue plugin packages reusable logic to add features across your entire app, like a global toolbox. Use them for routing, state management, or making custom functions globally available.

Vue, Angular & Svelte2 min read

Vue Render Functions: Trading Templates for JS Power

Render functions trade Vue's declarative templates for the full programmatic power of JavaScript. Use them for highly dynamic components where logic is too complex for templates. The footgun is losing template optimizations and readability for imperative code.

Headless Components: Separate Logic from UI
Vue, Angular & Svelte2 min read

Headless Components: Separate Logic from UI

A Headless Component separates a component's logic from its UI, providing the 'brain' without the 'looks'. Use it for complex elements like dropdowns that need consistent behavior but different visual styles. The footgun is assuming it's a drop-in UI.

Angular HttpInterceptor: A Pipeline for API Requests
Vue, Angular & Svelte2 min read

Angular HttpInterceptor: A Pipeline for API Requests

Think of an HttpInterceptor as a pipeline for every API call, letting you inspect or modify requests and responses globally. Use it to automatically add auth headers or show a loading spinner.

Angular Custom Attribute Directives
Vue, Angular & Svelte2 min read

Angular Custom Attribute Directives

An Angular attribute directive changes the appearance or behavior of an existing DOM element without adding a new one, applied as a plain HTML attribute so reusable behavior like hover effects or validation can be attached declaratively across many templates.

Vue, Angular & Svelte2 min read

Vue Composables: Reusable Stateful Logic

A Vue composable is a function for bundling reusable stateful logic, like tracking mouse position. Use it to share complex logic like API fetches across components. The footgun: each component gets a fresh, independent state, not a shared one.