---
description: React-Komponenten bevorzugt als Class Components schreiben
globs: src/**/*.{jsx,js,tsx,ts}
alwaysApply: false
---
# Class Components bevorzugen
Neue und geänderte React-Komponenten als **Class Components** (`extends PureComponent`), nicht als Function Components.
```js
// ❌
export default function ArticlePhoto({ photo }) {
return {photo?.thumbHash};
}
// ✅
class ArticlePhoto extends Component {
render() {
const { photo } = this.props;
return {photo?.thumbHash};
}
}
export default ArticlePhoto;
```
## Konventionen
- `import { Component } from 'react'`
- Event-Handler im Constructor binden (`this.handleX = this.handleX.bind(this)`)
- State über `this.state` / `this.setState`
- Lifecycle: `componentDidMount`, `componentDidUpdate`, `componentWillUnmount` statt Hooks
- Keine neuen Function Components und keine neuen Hooks (`useState`, `useEffect`, …), außer der Bestandscode ist bereits so und bleibt unangetastet