Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Angular Performance Avoid Template Functions

ASecurity

Prevents Angular performance issues caused by calling component methods or expensive expressions directly from templates.

4 stars
0 votes
0 copies
0 views
Added 10/2/2026
developmenttypescriptgoangularexpressperformance

Security Analysis

A100/100

Scanned 10/2/2026

$npx -y skills add janpereira-dev/ngAutoPilot --skill angular--performance--avoid-template-functions --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Angular Performance Avoid Template Functions?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Angular  Performance  Avoid Template Functions
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/janpereira-dev-angular-performance-avoid-template-functions/badge)](https://www.skillsdirectory.com/skills/janpereira-dev-angular-performance-avoid-template-functions)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
id: angular.performance.avoid-template-functions
name: Avoid Template Functions
description: >
  Prevents Angular performance issues caused by calling component methods or expensive expressions directly from templates.
stack:
  - Angular
  - TypeScript
category: performance
status: stable
version: 0.10.0
owner: NgAutoPilot
triggers:
  - template function
  - method call in template
  - change detection cost
  - computed signals
  - pure pipe
---

# Avoid Template Functions

## Purpose

Use this skill to reduce repeated computation during Angular change detection by moving expensive template method calls into precomputed state, view models, pure pipes, or computed signals.
This skill overlaps with `template-logic-optimization`; keep `avoid-template-functions` as the concrete detector for method calls in HTML and let the other skill cover broader expression-heavy templates.

## When to Use

Use this skill when:

- A template calls component methods from interpolation, bindings, conditions, or loops.
- A method is called inside `*ngFor` or `@for`.
- A component has slow rendering or frequent change detection.
- A method performs filtering, sorting, formatting, aggregation, permissions logic, or allocation.
- The same derived value is needed multiple times in a template.
- A getter performs non-trivial work every time Angular evaluates the view.

## Do

Prefer precomputed view models:

```ts
readonly itemsViewModel = this.items.map((item) => ({
  ...item,
  displayLabel: `${item.code} - ${item.name}`,
}));
```

```html
@for (item of itemsViewModel; track item.id) {
<span>{{ item.displayLabel }}</span>
}
```

Prefer computed signals for signal-based state:

```ts
readonly visibleItems = computed(() =>
  this.items().filter((item) => item.enabled),
);
```

Prefer pure pipes for reusable, deterministic transformations:

```html
<span>{{ item | itemLabel }}</span>
```

Keep trivial property reads in the template:

```html
<span>{{ item.name }}</span>
```

## Do Not

Avoid expensive method calls in templates:

```html
<span>{{ calculateTotal(order) }}</span>
```

Avoid repeated work inside loops:

```html
<li *ngFor="let item of items">{{ buildDisplayLabel(item) }}</li>
```

Avoid methods that allocate new arrays or objects during change detection:

```html
<app-list [items]="getFilteredItems()" />
```

Avoid using template calls as an escape hatch for derivation that belongs in component state, a facade, a selector, or a pure pipe.

## Review Checklist

- [ ] Template method calls are identified and classified as trivial or risky.
- [ ] Expensive transformations are moved outside the template.
- [ ] Reusable deterministic transformations use pure pipes when appropriate.
- [ ] Signal-based derived state uses `computed` when appropriate.
- [ ] Precomputed view models are updated when source data changes.
- [ ] The refactor does not introduce stale values or mutable shared state.
- [ ] Tests cover changed rendering or transformation behavior.
- [ ] Broad template-expression refactors are delegated to `template-logic-optimization` when the issue is not specifically a method call.

## Expected Output

1. Find method calls and expensive expressions in Angular templates.
2. Determine which calls can cause repeated work during change detection.
3. Replace risky calls with precomputed values, view models, pure pipes, or computed signals.
4. Keep the template simple and avoid unrelated changes.
5. Add or update tests when rendered values or state derivation changes.

Attribution

janpereira-devjanpereira-dev
View sourceSee grades on GitHubMore from janpereira-dev →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Clean Code

Pragmatic coding standards - concise, direct, no over-engineering, no unnecessary comments

304955 votes

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

286712 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2222 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Writing Plans

Use when you have a spec or requirements for a multi-step task, before touching code

2927051 votes
View all in development →