- Richa Pujara
Intern at Back2.Dev
Container Component
Data Fetching/
other Application logic
Presentational
UI Component
Presentational
UI Component
View
Benefits
1. Separation of Concerns
2: Sharing the states among components
3: Reusing components, less dev time, consistency between views/layouts.
// dogImages.js
import React from'react';
export default function () {
const [dogs, setDogs] = React.useState([])
React.useEffect(()=>{
fetch("https://dog.ceo/api/breed/labrador/images/random/6")
.then(res => res.json())
.then(jsonRes => setDogs(jsonRes.message));
},[])
return dogs.map((dog, i) => <img src={dog} key={i} alt="Dog" />
}
# PRESENTING CODE
// dogsContainer.js -- Container Component
import React from 'react';
import DogImages from './dogImages'
export default function DogImagesContainer() {
const [dogs, setDogs] = React.useState([])
React.useEffect(()=> {
fetch("https://dog.ceo/api/breed/labrador/images/random/6")
.then(res => res.json())
.then(jsonRes => setDogs(jsonRes.message))
},[])
return <DogImages dogs={dogs} />;
}
# PRESENTING CODE
// dogIMagesDisplay.js -- Presentational COmponent
import React from "react";
export default function DogImages({ dogs }) {
return dogs.map((dog, i) => <img src={dog} key={i} alt="Dog" />);
}
# PRESENTING CODE
How did we use it?
Easier testing of Renderer components with Storybook
My Experience Using It
References:
Introduction
// This slide uses Auto-Animate to animate between
// two different code blocks
const distanceBetween = ( p1, p2 ) => {
// TODO
}
distanceBetween([10,10], [50,50])
# PRESENTING CODE
// This slide uses Auto-Animate to animate between
// two different code blocks
const distanceBetween = ( p1, p2 ) => {
// TODO
}
distanceBetween([10,10], [50,50])
# PRESENTING CODE
What is Container-Presenter Pattern?
Text
Text
# CHAPTER 2
// This slide uses Auto-Animate to animate between
// two different code blocks
const distanceBetween = ( p1, p2 ) => {
// TODO
}
distanceBetween([10,10], [50,50])
# PRESENTING CODE