@@ -47,7 +47,7 @@ This gives you the power to prioritize our work and support the project contribu
47
47
- [ React Types Cheatsheet] ( #react-types-cheatsheet ) 🌟 __ NEW__
48
48
- [ Component Typing Patterns] ( #component-typing-patterns )
49
49
- [ Function Components - FC] ( #function-components---ffc )
50
- - [ Stateful Components - Class] ( #stateful -components---class ) 📝 __ UPDATED__
50
+ - [ Class Components - Class] ( #class -components---class ) 📝 __ UPDATED__
51
51
- [ Generic Components] ( #generic-components )
52
52
- [ Render Props] ( #render-props ) 🌟 __ NEW__
53
53
- [ Higher-Order Components] ( #higher-order-components ) 📝 __ UPDATED__
@@ -112,7 +112,7 @@ const MyComponent: React.FC<MyComponentProps> = ...
112
112
[ ⇧ back to top] ( #table-of-contents )
113
113
114
114
#### ` React.Component<P, S> `
115
- Type representing stateful class component
115
+ Type representing a class component
116
116
``` tsx
117
117
class MyComponent extends React .Component <MyComponentProps , State > { ...
118
118
` ` `
@@ -174,7 +174,7 @@ const handleChange = (ev: React.MouseEvent<HTMLDivElement>) => { ... }
174
174
175
175
## Function Components - FC
176
176
177
- #### - functional counter
177
+ #### - counter component
178
178
179
179
` ` ` tsx
180
180
import * as React from ' react' ;
@@ -234,22 +234,22 @@ export const FCSpreadAttributes: React.FC<FCSpreadAttributesProps> = (props) =>
234
234
235
235
---
236
236
237
- ## Stateful Components - Class
237
+ ## Class Components - Class
238
238
239
- #### - stateful counter
239
+ #### - class counter
240
240
241
241
` ` ` tsx
242
242
import * as React from ' react' ;
243
243
244
- export interface StatefulCounterProps {
244
+ export interface ClassCounterProps {
245
245
label: string ;
246
246
}
247
247
248
248
interface State {
249
249
readonly count: number ;
250
250
}
251
251
252
- export class StatefulCounter extends React .Component <StatefulCounterProps , State > {
252
+ export class ClassCounter extends React .Component <ClassCounterProps , State > {
253
253
readonly state: State = {
254
254
count: 0 ,
255
255
};
@@ -276,7 +276,7 @@ export class StatefulCounter extends React.Component<StatefulCounterProps, State
276
276
277
277
` ` `
278
278
279
- [⟩⟩⟩ demo](https://piotrwitek.github.io/react-redux-typescript-guide/#statefulcounter )
279
+ [⟩⟩⟩ demo](https://piotrwitek.github.io/react-redux-typescript-guide/#classcounter )
280
280
281
281
[⇧ back to top](#table-of-contents)
282
282
@@ -285,7 +285,7 @@ export class StatefulCounter extends React.Component<StatefulCounterProps, State
285
285
` ` ` tsx
286
286
import * as React from ' react' ;
287
287
288
- export interface StatefulCounterWithDefaultProps {
288
+ export interface ClassCounterWithDefaultProps {
289
289
label: string ;
290
290
initialCount ?: number ;
291
291
}
@@ -298,8 +298,8 @@ interface State {
298
298
readonly count: number ;
299
299
}
300
300
301
- export const StatefulCounterWithDefault : React .ComponentClass < StatefulCounterWithDefaultProps > =
302
- class extends React .Component <StatefulCounterWithDefaultProps & DefaultProps > {
301
+ export const ClassCounterWithDefault : React .ComponentClass < ClassCounterWithDefaultProps > =
302
+ class extends React .Component <ClassCounterWithDefaultProps & DefaultProps > {
303
303
// to make defaultProps strictly typed we need to explicitly declare their type
304
304
// @see https://github.com/DefinitelyTyped/DefinitelyTyped/issues/11640
305
305
static defaultProps: DefaultProps = {
@@ -310,7 +310,7 @@ export const StatefulCounterWithDefault: React.ComponentClass<StatefulCounterWit
310
310
count: this .props .initialCount ,
311
311
};
312
312
313
- componentWillReceiveProps({ initialCount }: StatefulCounterWithDefaultProps ) {
313
+ componentWillReceiveProps({ initialCount }: ClassCounterWithDefaultProps ) {
314
314
if (initialCount != null && initialCount !== this .props .initialCount ) {
315
315
this .setState ({ count: initialCount });
316
316
}
@@ -338,7 +338,7 @@ export const StatefulCounterWithDefault: React.ComponentClass<StatefulCounterWit
338
338
339
339
` ` `
340
340
341
- [⟩⟩⟩ demo](https://piotrwitek.github.io/react-redux-typescript-guide/#statefulcounterwithdefault )
341
+ [⟩⟩⟩ demo](https://piotrwitek.github.io/react-redux-typescript-guide/#classcounterwithdefault )
342
342
343
343
[⇧ back to top](#table-of-contents)
344
344
@@ -1450,7 +1450,7 @@ Related `ts-lint` rule: https://palantir.github.io/tslint/rules/interface-over-t
1450
1450
### - how to best initialize class instance or static properties?
1451
1451
> Prefered modern style is to use class Property Initializers
1452
1452
` ` ` tsx
1453
- class StatefulCounterWithInitialCount extends React .Component <Props , State > {
1453
+ class ClassCounterWithInitialCount extends React .Component <Props , State > {
1454
1454
// default props using Property Initializers
1455
1455
static defaultProps: DefaultProps = {
1456
1456
className: ' default-class' ,
@@ -1470,7 +1470,7 @@ class StatefulCounterWithInitialCount extends React.Component<Props, State> {
1470
1470
### - how to best declare component handler functions?
1471
1471
> Prefered modern style is to use Class Fields with arrow functions
1472
1472
` ` ` tsx
1473
- class StatefulCounter extends React .Component <Props , State > {
1473
+ class ClassCounter extends React .Component <Props , State > {
1474
1474
// handlers using Class Fields with arrow functions
1475
1475
handleIncrement = () => {
1476
1476
this .setState ({ count: this .state .count + 1 });
0 commit comments