SlideShare a Scribd company logo
ReactJS &
Functional
Programming
principles
Andrii Lundiak @ GlobalLogic
Facebook: Andrii Lundiak
Twitter: @landike
GitHub: @alundiak
Touch: A bit of theory and
code examples
in JavaScript and ReactJS
Agenda
● Immutability & ReactJS
● JS Function vs. ReactJS Functional Component & ReactJS Hooks
● First-Class & High-Order terms
● Memoizing
TODO:
● Lambda Calculus
● Avoid shared state
● Avoid side effects
● Strict/non-strict evaluation
Functional Programming
Functional programming is the process of building software by composing pure functions,
avoiding shared state, mutable data, and side-effects.
“In computer science, functional programming is a programming paradigm that treats computation as
the evaluation of mathematical functions and avoids state and mutable data. It emphasizes the
application of functions, in contrast to the imperative programming style, which emphasizes changes in
state. Functional programming has its roots in the lambda calculus, a formal system developed in the
1930s to investigate function definition, function application, and recursion.” Wiki.
Stateless vs. Stateful
https://medium.com/@DarkMordor/common-code-mistakes-in-react-that-you-maybe-made-18acce2787bf
“(react/prefer-stateless-function)
It’s more improvement in code and app than an error, but I recommend you to follow this rule. If
your component doesn’t use state than make it the stateless component”
https://medium.com/@DarkMordor/common-code-mistakes-in-react-that-you-maybe-made-1
8acce2787bf
“(react/no-direct-mutation-state)
State mutation is a huge error. Uncontrollable state mutation will lead to untraceable bugs and
big problems. ”
// When it is “broken” immutability?
Immutability & ReactJS this.props
Function & ReactJS functional component
// JavaScript
function add(a, b) { return a + b; }
// ReactJS
export function FunctionalAddComponent(props) { // aka stateless function
const { a, b } = props;
return ( <div>{a + b}</div> );
}
// When it is “broken” functional component?
Pure function vs. Pure component
● “If your React component’s render() function renders the same result given the same props and
state, you can use React.PureComponent for a performance boost in some cases.”
● “Hooks let you use more of React’s features without classes.Conceptually, React components
have always been closer to functions. Hooks embrace functions, but without sacrificing the
practical spirit of React. ”. Details.
First-Class & High-Order terms
1. In Math: High-Order function
2. In Programming: First-class function , MDN details.
● “First-class functions - functions which can be as arguments to other functions, returning them as the
values from other functions, and assigning them to variables or storing them in data structures”
● “First-class functions are a necessity for the functional programming style, in which the use of higher-order
functions is a standard practice.”
● JS: first-class/higher-order functions : filter(), map() and reduce(). Details.
● “We can also look at closures as first-class functions with bound variables. ”. Details.
● “setTimeout is of arity 2, or equivalently say that is a binary function”. Details.
High Order ReactJS Component
JavaScript:
// A Higher-Order Function is a FUNCTION that takes another FUNCTION as an input, returns
a FUNCTION or does both.
ReactJS:
// A Higher-Order Component is a FUNCTION that takes a COMPONENT and returns a new
COMPONENT.
“HOC doesn’t modify the input component, nor does it use inheritance to copy its behavior. Rather, a HOC composes the original
component by wrapping it in a container component. A HOC is a pure function with zero side-effects.”. Details. Users/Stocks
ReactJS example.
// When it is “broken” HOC component?
hof() and hoc()
// JavaScript
function hof() {
const firstName = 'Andrii';
return function (lastName) {
return `${firstName} ${lastName}`;
};
}
// ReactJS
const createHOC = (WrappedComponent, data) => {
class HocClass extends React.Component {
render() {
return <div> <WrappedComponent {...data} /> </div>;
}
}
return HocClass;
};
Currying, Derivative, Calculus
● Currying. “In mathematics and computer science, currying is the technique of translating the
evaluation of a function that takes multiple arguments into evaluating a sequence of functions,
each with a single argument. ”
● Derivative. “In other words, every value of x chooses a function, denoted fx
, which is a function of
one real number”. x => f(x) . Also related to Calculus.
● Function Composition - f( g( h(x) ) )
● TODO: Lambda Calculus
Currying in JavaScript
// JavaScript
const notCurry = (x, y, z) => x + y + z; // a regular function
const curry = x => y => z => x + y + z; // a curry function
// ReactJS
const reverse = PassedComponent => ({ children, ...props }) => (
<PassedComponent {...props}>
{children.split("").reverse().join("")}
</PassedComponent>
);
// Redux
export const withMiddleware = store => next => action => {
// do something, next(action) or state.dispatch();
}
Memoization
● “Memoization - storing the results of expensive function calls and returning the cached result
when the same inputs occur again.”
● “React memo() - s a higher order component. It’s similar to React.PureComponent but for
function components instead of classes. If your function component renders the same result
given the same props, you can wrap it in a call to React.memo for a performance boost in some
cases by memoizing the result. This means that React will skip rendering the component, and
reuse the last rendered result".
●
Good expl
https://logrocket.com/blog/pure-functional-components/
// Approach 1
export const MyMemoComponentWithFuncComp = React.memo(FunctionalComponent );
// Approach 2.1
export const MyMemoComponentWithRegularFunc = React.memo(function FunctionalComponent (props) {
const { msg } = props;
return <div> FunctionalComponent says: {msg}. </div>;
});
// Approach 2.2
export const MyMemoComponentWithFatArrow = React.memo((props) => {
const { msg } = props;
return <div> FunctionalComponent says: {msg}.</div>;
});
React.memo() is Functional HOC
Demo time
ReactJS tech/code outcomes
● ReactJS combines many things, is very flexible and allows you to choose, what suits you
best.
● Don’t mutate this.props from components inside
● Don’t mutate this.state this.state directly.
● It matters for debugging how you name your function, component, wrapping and wrapped
components.
Github repos
● https://github.com/stoeffel/awesome-fp-js
● https://github.com/markerikson/react-redux-links/blob/master/functional-programming.md
● https://github.com/alundiak/fp-examples
Read: FP in JavaScript
● https://en.wikipedia.org/wiki/Functional_programming#JavaScript
● https://dev.to/leandrotk_/functional-programming-principles-in-javascript-26g7
● https://medium.com/dailyjs/tagged/functional-programming
● https://medium.com/javascript-scene/tagged/functional-programming
● https://medium.com/javascript-scene/master-the-javascript-interview-what-is-functional-programming-7f218c68b3a
0
● https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-1-1f15e387e536
● https://medium.freecodecamp.org/discover-the-power-of-first-class-functions-fd0d7b599b69
● https://medium.freecodecamp.org/an-introduction-to-functional-programming-style-in-javascript-71fcc050f064
● https://hackernoon.com/javascript-and-functional-programming-pt-2-first-class-functions-4437a1aec217
● https://medium.com/front-end-weekly/javascript-es6-curry-functions-with-practical-examples-6ba2ced003b1
Read: FP in ReactJS
● https://lispcast.com/is-react-functional-programming/
● https://medium.com/@agm1984/an-overview-of-functional-programming-in-javascript-and-react-part-on
e-10d75b509e9e
● https://levelup.gitconnected.com/functional-react-is-it-possible-ceaf5ed91bfd
● https://www.dropsource.com/blog/functional-programming-principles-in-react-and-flux/
● https://codinglawyer.net/index.php/2018/01/31/taste-the-principles-of-functional-programming-in-react/
● https://medium.com/@andrea.chiarelli/the-functional-side-of-react-229bdb26d9a6
● https://hackernoon.com/curry-away-in-react-7c4ed110c65a
Video (PL):
https://www.youtube.com/watch?v=8rUKMWiT5Y4
Q&A
Facebook: Andrii Lundiak
Twitter: @landike
GitHub: @alundiak

More Related Content

What's hot (20)

PPTX
React js
Oswald Campesato
 
PPTX
Introduction to React JS for beginners
Varun Raj
 
PPTX
Introduction to react_js
MicroPyramid .
 
PPTX
React hooks
Sadhna Rana
 
PDF
An introduction to React.js
Emanuele DelBono
 
PPTX
Reactjs
Neha Sharma
 
PPTX
[Final] ReactJS presentation
洪 鹏发
 
PDF
Understanding react hooks
Samundra khatri
 
PPT
Introduction to Javascript
Amit Tyagi
 
ODP
Introduction to ReactJS
Knoldus Inc.
 
PPTX
React hooks
Assaf Gannon
 
PPTX
Angular Data Binding
Jennifer Estrada
 
PPTX
React JS part 1
Diluka Wittahachchige
 
PPTX
Understanding react hooks
Maulik Shah
 
PDF
Introduction to React JS
Bethmi Gunasekara
 
PPTX
React-JS.pptx
AnmolPandita7
 
PPTX
Intro to React
Justin Reock
 
PPTX
Spring jdbc
Harshit Choudhary
 
PPTX
Angular tutorial
Rohit Gupta
 
Introduction to React JS for beginners
Varun Raj
 
Introduction to react_js
MicroPyramid .
 
React hooks
Sadhna Rana
 
An introduction to React.js
Emanuele DelBono
 
Reactjs
Neha Sharma
 
[Final] ReactJS presentation
洪 鹏发
 
Understanding react hooks
Samundra khatri
 
Introduction to Javascript
Amit Tyagi
 
Introduction to ReactJS
Knoldus Inc.
 
React hooks
Assaf Gannon
 
Angular Data Binding
Jennifer Estrada
 
React JS part 1
Diluka Wittahachchige
 
Understanding react hooks
Maulik Shah
 
Introduction to React JS
Bethmi Gunasekara
 
React-JS.pptx
AnmolPandita7
 
Intro to React
Justin Reock
 
Spring jdbc
Harshit Choudhary
 
Angular tutorial
Rohit Gupta
 

Similar to React JS & Functional Programming Principles (20)

PDF
Advanced React
Mike Wilcox
 
PDF
How to practice functional programming in react
Netta Bondy
 
PDF
Plain react, hooks and/or Redux ?
Jörn Dinkla
 
PPTX
React JS Workings Exercises Extra Classes
ssuser426fcf
 
PDF
Functional React
Michael McDermott
 
PPTX
TRAINING pptt efwoiefo weoifjoiewjfoifjow.pptx
PrathamSharma77833
 
PPTX
react-slidlkjfl;kj;dlkjopidfjhopijgpoerjpofjiwoepifjopweifjepoies.pptx
PrathamSharma77833
 
PDF
Understanding React hooks | Walkingtree Technologies
Walking Tree Technologies
 
PPTX
Functional programming in javascript
Boris Burdiliak
 
PDF
react-slides.pdf
DayNightGaMiNg
 
PDF
react-slides.pdf gives information about react library
janet736113
 
PPTX
react-slides.pptx
DayNightGaMiNg
 
PPTX
ReactJs Training in Hyderabad | ReactJS Training
eshwarvisualpath
 
PDF
Enhance react app with patterns - part 1: higher order component
Yao Nien Chung
 
PDF
Workshop 19: ReactJS Introduction
Visual Engineering
 
PDF
React – Let’s “Hook” up
InnovationM
 
PPTX
React JS: A Secret Preview
valuebound
 
PDF
Advanced React Component Patterns - ReactNext 2018
Robert Herbst
 
PDF
React.js: The hottest JS lib for building UIs
Stavros Bastakis
 
PDF
React: The hottest JS lib for building UIs
Nikos Kampitakis
 
Advanced React
Mike Wilcox
 
How to practice functional programming in react
Netta Bondy
 
Plain react, hooks and/or Redux ?
Jörn Dinkla
 
React JS Workings Exercises Extra Classes
ssuser426fcf
 
Functional React
Michael McDermott
 
TRAINING pptt efwoiefo weoifjoiewjfoifjow.pptx
PrathamSharma77833
 
react-slidlkjfl;kj;dlkjopidfjhopijgpoerjpofjiwoepifjopweifjepoies.pptx
PrathamSharma77833
 
Understanding React hooks | Walkingtree Technologies
Walking Tree Technologies
 
Functional programming in javascript
Boris Burdiliak
 
react-slides.pdf
DayNightGaMiNg
 
react-slides.pdf gives information about react library
janet736113
 
react-slides.pptx
DayNightGaMiNg
 
ReactJs Training in Hyderabad | ReactJS Training
eshwarvisualpath
 
Enhance react app with patterns - part 1: higher order component
Yao Nien Chung
 
Workshop 19: ReactJS Introduction
Visual Engineering
 
React – Let’s “Hook” up
InnovationM
 
React JS: A Secret Preview
valuebound
 
Advanced React Component Patterns - ReactNext 2018
Robert Herbst
 
React.js: The hottest JS lib for building UIs
Stavros Bastakis
 
React: The hottest JS lib for building UIs
Nikos Kampitakis
 
Ad

More from Andrii Lundiak (8)

PDF
Create ReactJS Component & publish as npm package
Andrii Lundiak
 
PPTX
Node js packages [#howto with npm]
Andrii Lundiak
 
PPTX
Backbone/Marionette recap [2015]
Andrii Lundiak
 
PDF
Grunt Delicious
Andrii Lundiak
 
PPTX
Mockups & Requirements [ITdeya @ IF_IT_S]
Andrii Lundiak
 
PPT
Drupal Vs Other
Andrii Lundiak
 
PPTX
Drupal Deployment Troubles and Problems
Andrii Lundiak
 
PPT
Election
Andrii Lundiak
 
Create ReactJS Component & publish as npm package
Andrii Lundiak
 
Node js packages [#howto with npm]
Andrii Lundiak
 
Backbone/Marionette recap [2015]
Andrii Lundiak
 
Grunt Delicious
Andrii Lundiak
 
Mockups & Requirements [ITdeya @ IF_IT_S]
Andrii Lundiak
 
Drupal Vs Other
Andrii Lundiak
 
Drupal Deployment Troubles and Problems
Andrii Lundiak
 
Election
Andrii Lundiak
 
Ad

Recently uploaded (20)

PDF
The-Hidden-Dangers-of-Skipping-Penetration-Testing.pdf.pdf
naksh4thra
 
PDF
BRKACI-1003 ACI Brownfield Migration - Real World Experiences and Best Practi...
fcesargonca
 
PPTX
Presentation3gsgsgsgsdfgadgsfgfgsfgagsfgsfgzfdgsdgs.pptx
SUB03
 
PPTX
Orchestrating things in Angular application
Peter Abraham
 
PPTX
PM200.pptxghjgfhjghjghjghjghjghjghjghjghjghj
breadpaan921
 
PPT
introductio to computers by arthur janry
RamananMuthukrishnan
 
PDF
The Internet - By the numbers, presented at npNOG 11
APNIC
 
PPTX
04 Output 1 Instruments & Tools (3).pptx
GEDYIONGebre
 
PPTX
法国巴黎第二大学本科毕业证{Paris 2学费发票Paris 2成绩单}办理方法
Taqyea
 
PPT
Agilent Optoelectronic Solutions for Mobile Application
andreashenniger2
 
PPTX
Lec15_Mutability Immutability-converted.pptx
khanjahanzaib1
 
PDF
Cleaning up your RPKI invalids, presented at PacNOG 35
APNIC
 
PPTX
internet básico presentacion es una red global
70965857
 
DOCX
Custom vs. Off-the-Shelf Banking Software
KristenCarter35
 
PPTX
L1A Season 1 Guide made by A hegy Eng Grammar fixed
toszolder91
 
PPTX
L1A Season 1 ENGLISH made by A hegy fixed
toszolder91
 
PPT
introduction to networking with basics coverage
RamananMuthukrishnan
 
PDF
AI_MOD_1.pdf artificial intelligence notes
shreyarrce
 
PDF
Apple_Environmental_Progress_Report_2025.pdf
yiukwong
 
PDF
Build Fast, Scale Faster: Milvus vs. Zilliz Cloud for Production-Ready AI
Zilliz
 
The-Hidden-Dangers-of-Skipping-Penetration-Testing.pdf.pdf
naksh4thra
 
BRKACI-1003 ACI Brownfield Migration - Real World Experiences and Best Practi...
fcesargonca
 
Presentation3gsgsgsgsdfgadgsfgfgsfgagsfgsfgzfdgsdgs.pptx
SUB03
 
Orchestrating things in Angular application
Peter Abraham
 
PM200.pptxghjgfhjghjghjghjghjghjghjghjghjghj
breadpaan921
 
introductio to computers by arthur janry
RamananMuthukrishnan
 
The Internet - By the numbers, presented at npNOG 11
APNIC
 
04 Output 1 Instruments & Tools (3).pptx
GEDYIONGebre
 
法国巴黎第二大学本科毕业证{Paris 2学费发票Paris 2成绩单}办理方法
Taqyea
 
Agilent Optoelectronic Solutions for Mobile Application
andreashenniger2
 
Lec15_Mutability Immutability-converted.pptx
khanjahanzaib1
 
Cleaning up your RPKI invalids, presented at PacNOG 35
APNIC
 
internet básico presentacion es una red global
70965857
 
Custom vs. Off-the-Shelf Banking Software
KristenCarter35
 
L1A Season 1 Guide made by A hegy Eng Grammar fixed
toszolder91
 
L1A Season 1 ENGLISH made by A hegy fixed
toszolder91
 
introduction to networking with basics coverage
RamananMuthukrishnan
 
AI_MOD_1.pdf artificial intelligence notes
shreyarrce
 
Apple_Environmental_Progress_Report_2025.pdf
yiukwong
 
Build Fast, Scale Faster: Milvus vs. Zilliz Cloud for Production-Ready AI
Zilliz
 

React JS & Functional Programming Principles

  • 1. ReactJS & Functional Programming principles Andrii Lundiak @ GlobalLogic Facebook: Andrii Lundiak Twitter: @landike GitHub: @alundiak Touch: A bit of theory and code examples in JavaScript and ReactJS
  • 2. Agenda ● Immutability & ReactJS ● JS Function vs. ReactJS Functional Component & ReactJS Hooks ● First-Class & High-Order terms ● Memoizing TODO: ● Lambda Calculus ● Avoid shared state ● Avoid side effects ● Strict/non-strict evaluation
  • 3. Functional Programming Functional programming is the process of building software by composing pure functions, avoiding shared state, mutable data, and side-effects. “In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. It emphasizes the application of functions, in contrast to the imperative programming style, which emphasizes changes in state. Functional programming has its roots in the lambda calculus, a formal system developed in the 1930s to investigate function definition, function application, and recursion.” Wiki.
  • 4. Stateless vs. Stateful https://medium.com/@DarkMordor/common-code-mistakes-in-react-that-you-maybe-made-18acce2787bf “(react/prefer-stateless-function) It’s more improvement in code and app than an error, but I recommend you to follow this rule. If your component doesn’t use state than make it the stateless component”
  • 5. https://medium.com/@DarkMordor/common-code-mistakes-in-react-that-you-maybe-made-1 8acce2787bf “(react/no-direct-mutation-state) State mutation is a huge error. Uncontrollable state mutation will lead to untraceable bugs and big problems. ” // When it is “broken” immutability? Immutability & ReactJS this.props
  • 6. Function & ReactJS functional component // JavaScript function add(a, b) { return a + b; } // ReactJS export function FunctionalAddComponent(props) { // aka stateless function const { a, b } = props; return ( <div>{a + b}</div> ); } // When it is “broken” functional component?
  • 7. Pure function vs. Pure component ● “If your React component’s render() function renders the same result given the same props and state, you can use React.PureComponent for a performance boost in some cases.” ● “Hooks let you use more of React’s features without classes.Conceptually, React components have always been closer to functions. Hooks embrace functions, but without sacrificing the practical spirit of React. ”. Details.
  • 8. First-Class & High-Order terms 1. In Math: High-Order function 2. In Programming: First-class function , MDN details. ● “First-class functions - functions which can be as arguments to other functions, returning them as the values from other functions, and assigning them to variables or storing them in data structures” ● “First-class functions are a necessity for the functional programming style, in which the use of higher-order functions is a standard practice.” ● JS: first-class/higher-order functions : filter(), map() and reduce(). Details. ● “We can also look at closures as first-class functions with bound variables. ”. Details. ● “setTimeout is of arity 2, or equivalently say that is a binary function”. Details.
  • 9. High Order ReactJS Component JavaScript: // A Higher-Order Function is a FUNCTION that takes another FUNCTION as an input, returns a FUNCTION or does both. ReactJS: // A Higher-Order Component is a FUNCTION that takes a COMPONENT and returns a new COMPONENT. “HOC doesn’t modify the input component, nor does it use inheritance to copy its behavior. Rather, a HOC composes the original component by wrapping it in a container component. A HOC is a pure function with zero side-effects.”. Details. Users/Stocks ReactJS example. // When it is “broken” HOC component?
  • 10. hof() and hoc() // JavaScript function hof() { const firstName = 'Andrii'; return function (lastName) { return `${firstName} ${lastName}`; }; } // ReactJS const createHOC = (WrappedComponent, data) => { class HocClass extends React.Component { render() { return <div> <WrappedComponent {...data} /> </div>; } } return HocClass; };
  • 11. Currying, Derivative, Calculus ● Currying. “In mathematics and computer science, currying is the technique of translating the evaluation of a function that takes multiple arguments into evaluating a sequence of functions, each with a single argument. ” ● Derivative. “In other words, every value of x chooses a function, denoted fx , which is a function of one real number”. x => f(x) . Also related to Calculus. ● Function Composition - f( g( h(x) ) ) ● TODO: Lambda Calculus
  • 12. Currying in JavaScript // JavaScript const notCurry = (x, y, z) => x + y + z; // a regular function const curry = x => y => z => x + y + z; // a curry function // ReactJS const reverse = PassedComponent => ({ children, ...props }) => ( <PassedComponent {...props}> {children.split("").reverse().join("")} </PassedComponent> ); // Redux export const withMiddleware = store => next => action => { // do something, next(action) or state.dispatch(); }
  • 13. Memoization ● “Memoization - storing the results of expensive function calls and returning the cached result when the same inputs occur again.” ● “React memo() - s a higher order component. It’s similar to React.PureComponent but for function components instead of classes. If your function component renders the same result given the same props, you can wrap it in a call to React.memo for a performance boost in some cases by memoizing the result. This means that React will skip rendering the component, and reuse the last rendered result". ● Good expl https://logrocket.com/blog/pure-functional-components/
  • 14. // Approach 1 export const MyMemoComponentWithFuncComp = React.memo(FunctionalComponent ); // Approach 2.1 export const MyMemoComponentWithRegularFunc = React.memo(function FunctionalComponent (props) { const { msg } = props; return <div> FunctionalComponent says: {msg}. </div>; }); // Approach 2.2 export const MyMemoComponentWithFatArrow = React.memo((props) => { const { msg } = props; return <div> FunctionalComponent says: {msg}.</div>; }); React.memo() is Functional HOC
  • 16. ReactJS tech/code outcomes ● ReactJS combines many things, is very flexible and allows you to choose, what suits you best. ● Don’t mutate this.props from components inside ● Don’t mutate this.state this.state directly. ● It matters for debugging how you name your function, component, wrapping and wrapped components.
  • 17. Github repos ● https://github.com/stoeffel/awesome-fp-js ● https://github.com/markerikson/react-redux-links/blob/master/functional-programming.md ● https://github.com/alundiak/fp-examples
  • 18. Read: FP in JavaScript ● https://en.wikipedia.org/wiki/Functional_programming#JavaScript ● https://dev.to/leandrotk_/functional-programming-principles-in-javascript-26g7 ● https://medium.com/dailyjs/tagged/functional-programming ● https://medium.com/javascript-scene/tagged/functional-programming ● https://medium.com/javascript-scene/master-the-javascript-interview-what-is-functional-programming-7f218c68b3a 0 ● https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-1-1f15e387e536 ● https://medium.freecodecamp.org/discover-the-power-of-first-class-functions-fd0d7b599b69 ● https://medium.freecodecamp.org/an-introduction-to-functional-programming-style-in-javascript-71fcc050f064 ● https://hackernoon.com/javascript-and-functional-programming-pt-2-first-class-functions-4437a1aec217 ● https://medium.com/front-end-weekly/javascript-es6-curry-functions-with-practical-examples-6ba2ced003b1
  • 19. Read: FP in ReactJS ● https://lispcast.com/is-react-functional-programming/ ● https://medium.com/@agm1984/an-overview-of-functional-programming-in-javascript-and-react-part-on e-10d75b509e9e ● https://levelup.gitconnected.com/functional-react-is-it-possible-ceaf5ed91bfd ● https://www.dropsource.com/blog/functional-programming-principles-in-react-and-flux/ ● https://codinglawyer.net/index.php/2018/01/31/taste-the-principles-of-functional-programming-in-react/ ● https://medium.com/@andrea.chiarelli/the-functional-side-of-react-229bdb26d9a6 ● https://hackernoon.com/curry-away-in-react-7c4ed110c65a Video (PL): https://www.youtube.com/watch?v=8rUKMWiT5Y4
  • 20. Q&A Facebook: Andrii Lundiak Twitter: @landike GitHub: @alundiak