Typos aside, the concepts are pretty basic.
A pure function is a function that has no side-effects; it guarantees that whenever it is called with the same inputs (e.g., React props), it will produce the bit-for-bit exact same output (e.g., a rendered HTML string).
A functional component has no externally-visible state to modify (though it can request that Redux, Flux, or etc do so, and those requests will always be made the same way when the component function is called with the same props). This makes it very easy to reason about, test, and maintain components. It also encourages their decomposition into fine-grained, single-execution-path functions that approach being “too simple to test”; you can read them at a glance and reason accurately about their correctness. Cognitive load then shifts from “how does this component work” to “how does this set of components work together to produce the desired result”? You know how a screw works. An analytical engine requires far more effort to wrap your head around, even though it utilises screws in its construction.
Does that help?
