The idea
A component describes UI from its props and state. Props come from the parent and should not be mutated by the child. Rendering should be pure: do not send requests or modify external state merely because React asks for a render. Derive simple display values from existing inputs rather than duplicating them unnecessarily.
Worked example
A course component receives a title and price. Its free label can be derived from price === 0 without storing a second isFree state. Editing the props object inside the child would violate the expected data flow.
Try it
Sketch a course component contract with title, price and destination. Identify two values that can be derived instead of stored. Write which user action could legitimately request a state change and which side effect must not run during rendering.
