Video Tutorial Comment module: React


In this second chapter we will create the interface part of our comments module based on the React library.

Before you begin it is important to think about the reason behind the use of the library. For this comment module there will be a lot of user actions and their actions result in changes at the interface level. To simplify the transformations and manipulation of the DOM we will use React. It will allow us to represent our interface as a function of the state and we will thus be able to concentrate on the change of this state (it is React who will take care of synchronizing the dom and it will thus offer us an additional level of abstraction ). We could use Preact here if we want a lighter alternative and if we don't plan to use React in the rest of our application.

Hooks

For this kind of module we will need to communicate with the API and perform operations that are very generic. Typically we will call a URL, display a spinner while loading, and then display the results. This logic being very generic we will be able to extract it in layers that we can then reuse throughout our project.

function Comments ({post, user}) {
  // This hook allows to manage all the recovery part independently of the component
  const {items: comments, setItems: setComments, loading, count, hasMore} = usePaginatedFetch ('/ api / comments? post =' + post)

  // We manage the mutations specific to our component (but we could abstract it in a function if this logic is repeated)
  const addComment = useCallback (comment => {
    setComments (comments => (comment, ... comments))
  }, ())
  const deleteComment = useCallback (comment => {
    setComments (comments => comments.filter (c => c! == comment))
  }, ())
  const updateComment = useCallback ((newComment, oldComment) => {
    setComments (comments => comments.map (c => c === oldComment? newComment: c))
  }, ())

  // We make the component
  return 
{user && <CommentForm post={post} onComment={addComment}/>}     {comments.map (c => <Comment key={c.id} comment={c} canEdit={c.author.id === user} onDelete={deleteComment} onUpdate={updateComment} /> )}     {hasMore && <button disabled={loading} className="btn btn-primary" onClick={load}>Load more comment</button> } </div> } </code></pre><p>The goal of hooks is to be able to separate the mutations of the state of the interface part.</p></p></div></p></div> <script src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js" defer data-deferred="1"></script><div class="td-g-rec td-g-rec-id-content_bottom tdi_3 td_block_template_4 "><style>/* custom css */ .tdi_3.td-a-rec{ text-align: center; }.tdi_3 .td-element-style{ z-index: -1; }.tdi_3.td-a-rec-img{ text-align: left; }.tdi_3.td-a-rec-img img{ margin: 0 auto 0 0; }@media (max-width: 767px) { .tdi_3.td-a-rec-img { text-align: center; } }</style><script type="text/javascript" src="data:text/javascript;base64,dmFyIHRkX3NjcmVlbl93aWR0aD13aW5kb3cuaW5uZXJXaWR0aDt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXt2YXIgcGxhY2VBZEVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZC1hZC1wbGFjZWhvbGRlciIpO2lmKG51bGwhPT1wbGFjZUFkRWwmJnRkX3NjcmVlbl93aWR0aD49MTE0MCl7dmFyIGFkRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5zIik7cGxhY2VBZEVsLnJlcGxhY2VXaXRoKGFkRWwpO2FkRWwuc2V0QXR0cmlidXRlKCJjbGFzcyIsImFkc2J5Z29vZ2xlIik7YWRFbC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6NDY4cHg7aGVpZ2h0OjYwcHgiKTthZEVsLnNldEF0dHJpYnV0ZSgiZGF0YS1hZC1jbGllbnQiLCJjYS1wdWItNTU5NzQ4MzY0MjM2MTM1MyIpO2FkRWwuc2V0QXR0cmlidXRlKCJkYXRhLWFkLXNsb3QiLCI4NDQzNzIxMDk1Iik7KGFkc2J5Z29vZ2xlPXdpbmRvdy5hZHNieWdvb2dsZXx8W10pLnB1c2goe30pfX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe3ZhciBwbGFjZUFkRWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRkLWFkLXBsYWNlaG9sZGVyIik7aWYobnVsbCE9PXBsYWNlQWRFbCYmdGRfc2NyZWVuX3dpZHRoPj0xMDE5JiZ0ZF9zY3JlZW5fd2lkdGg8MTE0MCl7dmFyIGFkRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5zIik7cGxhY2VBZEVsLnJlcGxhY2VXaXRoKGFkRWwpO2FkRWwuc2V0QXR0cmlidXRlKCJjbGFzcyIsImFkc2J5Z29vZ2xlIik7YWRFbC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6NDY4cHg7aGVpZ2h0OjYwcHgiKTthZEVsLnNldEF0dHJpYnV0ZSgiZGF0YS1hZC1jbGllbnQiLCJjYS1wdWItNTU5NzQ4MzY0MjM2MTM1MyIpO2FkRWwuc2V0QXR0cmlidXRlKCJkYXRhLWFkLXNsb3QiLCI4NDQzNzIxMDk1Iik7KGFkc2J5Z29vZ2xlPXdpbmRvdy5hZHNieWdvb2dsZXx8W10pLnB1c2goe30pfX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe3ZhciBwbGFjZUFkRWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRkLWFkLXBsYWNlaG9sZGVyIik7aWYobnVsbCE9PXBsYWNlQWRFbCYmdGRfc2NyZWVuX3dpZHRoPj03NjgmJnRkX3NjcmVlbl93aWR0aDwxMDE5KXt2YXIgYWRFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnMiKTtwbGFjZUFkRWwucmVwbGFjZVdpdGgoYWRFbCk7YWRFbC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwiYWRzYnlnb29nbGUiKTthZEVsLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDo0NjhweDtoZWlnaHQ6NjBweCIpO2FkRWwuc2V0QXR0cmlidXRlKCJkYXRhLWFkLWNsaWVudCIsImNhLXB1Yi01NTk3NDgzNjQyMzYxMzUzIik7YWRFbC5zZXRBdHRyaWJ1dGUoImRhdGEtYWQtc2xvdCIsIjg0NDM3MjEwOTUiKTsoYWRzYnlnb29nbGU9d2luZG93LmFkc2J5Z29vZ2xlfHxbXSkucHVzaCh7fSl9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7dmFyIHBsYWNlQWRFbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGQtYWQtcGxhY2Vob2xkZXIiKTtpZihudWxsIT09cGxhY2VBZEVsJiZ0ZF9zY3JlZW5fd2lkdGg8NzY4KXt2YXIgYWRFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnMiKTtwbGFjZUFkRWwucmVwbGFjZVdpdGgoYWRFbCk7YWRFbC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwiYWRzYnlnb29nbGUiKTthZEVsLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDozMDBweDtoZWlnaHQ6MjUwcHgiKTthZEVsLnNldEF0dHJpYnV0ZSgiZGF0YS1hZC1jbGllbnQiLCJjYS1wdWItNTU5NzQ4MzY0MjM2MTM1MyIpO2FkRWwuc2V0QXR0cmlidXRlKCJkYXRhLWFkLXNsb3QiLCI4NDQzNzIxMDk1Iik7KGFkc2J5Z29vZ2xlPXdpbmRvdy5hZHNieWdvb2dsZXx8W10pLnB1c2goe30pfX0p" defer></script> <noscript id="td-ad-placeholder"></noscript></div></div><footer><div class="td-post-source-tags"></div><div class="td-post-sharing-bottom"><div class="td-post-sharing-classic"><iframe frameBorder="0" src="https://www.facebook.com/plugins/like.php?href=https://motivationjob.com/advices-skills/developper/video-tutorial-comment-module-react/&layout=button_count&show_faces=false&width=105&action=like&colorscheme=light&height=21" style="border:none; overflow:hidden; width:auto; height:21px; background-color:transparent;"></iframe></div><div id="td_social_sharing_article_bottom" class="td-post-sharing td-ps-bg td-ps-notext td-post-sharing-style1 "><div class="td-post-sharing-visible"><div class="td-social-sharing-button td-social-sharing-button-js td-social-handler td-social-share-text"><div class="td-social-but-icon"><i class="td-icon-share"></i></div><div class="td-social-but-text">Share</div></div><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-facebook" href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fmotivationjob.com%2Fadvices-skills%2Fdevelopper%2Fvideo-tutorial-comment-module-react%2F" title="Facebook" ><div class="td-social-but-icon"><i class="td-icon-facebook"></i></div><div class="td-social-but-text">Facebook</div> </a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-twitter" href="https://twitter.com/intent/tweet?text=Video+Tutorial+Comment+module%3A+React&url=https%3A%2F%2Fmotivationjob.com%2Fadvices-skills%2Fdevelopper%2Fvideo-tutorial-comment-module-react%2F&via=MotivationJob+-+Creativity%2C+Passion%2C+Possibilities" title="Twitter" ><div class="td-social-but-icon"><i class="td-icon-twitter"></i></div><div class="td-social-but-text">Twitter</div> </a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-pinterest" href="https://pinterest.com/pin/create/button/?url=https://motivationjob.com/advices-skills/developper/video-tutorial-comment-module-react/&media=https://motivationjob.com/wp-content/uploads/2020/05/Video-Tutorial-Comment-module-React.jpg&description=Video+Tutorial+Comment+module%3A+React" title="Pinterest" ><div class="td-social-but-icon"><i class="td-icon-pinterest"></i></div><div class="td-social-but-text">Pinterest</div> </a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-whatsapp" href="https://api.whatsapp.com/send?text=Video+Tutorial+Comment+module%3A+React %0A%0A https://motivationjob.com/advices-skills/developper/video-tutorial-comment-module-react/" title="WhatsApp" ><div class="td-social-but-icon"><i class="td-icon-whatsapp"></i></div><div class="td-social-but-text">WhatsApp</div> </a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-linkedin" href="https://www.linkedin.com/shareArticle?mini=true&url=https://motivationjob.com/advices-skills/developper/video-tutorial-comment-module-react/&title=Video+Tutorial+Comment+module%3A+React" title="Linkedin" ><div class="td-social-but-icon"><i class="td-icon-linkedin"></i></div><div class="td-social-but-text">Linkedin</div> </a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-mail" href="mailto:?subject=Video Tutorial Comment module: React&body=https://motivationjob.com/advices-skills/developper/video-tutorial-comment-module-react/" title="Email" ><div class="td-social-but-icon"><i class="td-icon-mail"></i></div><div class="td-social-but-text">Email</div> </a></div><div class="td-social-sharing-hidden"><ul class="td-pulldown-filter-list"></ul><a class="td-social-sharing-button td-social-handler td-social-expand-tabs" href="#" data-block-uid="td_social_sharing_article_bottom" title="More"><div class="td-social-but-icon"><i class="td-icon-plus td-social-expand-tabs-icon"></i></div> </a></div></div></div><div class="td-author-name vcard author" style="display: none"><span class="fn"><a href="https://motivationjob.com/author/admin/">admin</a></span></div> <span class="td-page-meta" itemprop="author" itemscope itemtype="https://schema.org/Person"><meta itemprop="name" content="admin"></span><meta itemprop="datePublished" content="2020-05-20T08:33:21-04:00"><meta itemprop="dateModified" content="2020-05-20T08:33:21-04:00"><meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://motivationjob.com/advices-skills/developper/video-tutorial-comment-module-react/"/><span class="td-page-meta" itemprop="publisher" itemscope itemtype="https://schema.org/Organization"><span class="td-page-meta" itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="https://motivationjob.com/wp-content/uploads/2019/05/logo-1.png"></span><meta itemprop="name" content="MotivationJob - Creativity, Passion, Possibilities"></span><meta itemprop="headline " content="Video Tutorial Comment module: React"><span class="td-page-meta" itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="https://motivationjob.com/wp-content/uploads/2020/05/Video-Tutorial-Comment-module-React.jpg"><meta itemprop="width" content="1920"><meta itemprop="height" content="1080"></span></footer><div class="td_block_wrap td_block_related_posts tdi_4 td_with_ajax_pagination td-pb-border-top td_block_template_4" data-td-block-uid="tdi_4" ><script src="data:text/javascript;base64,dmFyIGJsb2NrX3RkaV80PW5ldyB0ZEJsb2NrKCk7YmxvY2tfdGRpXzQuaWQ9InRkaV80IjtibG9ja190ZGlfNC5hdHRzPSd7ImxpbWl0IjozLCJhamF4X3BhZ2luYXRpb24iOiJuZXh0X3ByZXYiLCJsaXZlX2ZpbHRlciI6ImN1cl9wb3N0X3NhbWVfY2F0ZWdvcmllcyIsInRkX2FqYXhfZmlsdGVyX3R5cGUiOiJ0ZF9jdXN0b21fcmVsYXRlZCIsImNsYXNzIjoidGRpXzQiLCJ0ZF9jb2x1bW5fbnVtYmVyIjozLCJibG9ja190eXBlIjoidGRfYmxvY2tfcmVsYXRlZF9wb3N0cyIsImxpdmVfZmlsdGVyX2N1cl9wb3N0X2lkIjoyMzk3LCJsaXZlX2ZpbHRlcl9jdXJfcG9zdF9hdXRob3IiOiIxIiwiYmxvY2tfdGVtcGxhdGVfaWQiOiIiLCJoZWFkZXJfY29sb3IiOiIiLCJhamF4X3BhZ2luYXRpb25faW5maW5pdGVfc3RvcCI6IiIsIm9mZnNldCI6IiIsInRkX2FqYXhfcHJlbG9hZGluZyI6IiIsInRkX2ZpbHRlcl9kZWZhdWx0X3R4dCI6IiIsInRkX2FqYXhfZmlsdGVyX2lkcyI6IiIsImVsX2NsYXNzIjoiIiwiY29sb3JfcHJlc2V0IjoiIiwiYm9yZGVyX3RvcCI6IiIsImNzcyI6IiIsInRkY19jc3MiOiIiLCJ0ZGNfY3NzX2NsYXNzIjoidGRpXzQiLCJ0ZGNfY3NzX2NsYXNzX3N0eWxlIjoidGRpXzRfcmFuZF9zdHlsZSJ9JztibG9ja190ZGlfNC50ZF9jb2x1bW5fbnVtYmVyPSIzIjtibG9ja190ZGlfNC5ibG9ja190eXBlPSJ0ZF9ibG9ja19yZWxhdGVkX3Bvc3RzIjtibG9ja190ZGlfNC5wb3N0X2NvdW50PSIzIjtibG9ja190ZGlfNC5mb3VuZF9wb3N0cz0iMzgyIjtibG9ja190ZGlfNC5oZWFkZXJfY29sb3I9IiI7YmxvY2tfdGRpXzQuYWpheF9wYWdpbmF0aW9uX2luZmluaXRlX3N0b3A9IiI7YmxvY2tfdGRpXzQubWF4X251bV9wYWdlcz0iMTI4Ijt0ZEJsb2Nrc0FycmF5LnB1c2goYmxvY2tfdGRpXzQp" defer></script><h4 class="td-related-title td-block-title"><a id="tdi_5" class="td-related-left td-cur-simple-item" data-td_filter_value="" data-td_block_id="tdi_4" href="#">RELATED ARTICLES</a><a id="tdi_6" class="td-related-right" data-td_filter_value="td_related_more_from_author" data-td_block_id="tdi_4" href="#">MORE FROM AUTHOR</a></h4><div id=tdi_4 class="td_block_inner"><div class="td-related-row"><div class="td-related-span4"><div class="td_module_related_posts td-animation-stack td_mod_related_posts"><div class="td-module-image"><div class="td-module-thumb"><a href="https://motivationjob.com/advices-skills/developper/le-flux-de-donnees-dans-react-formation-apprendre-react/" rel="bookmark" class="td-image-wrap " title="Le flux de données dans React — Formation Apprendre React" ><img class="entry-thumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANoAAACWAQMAAACCSQSPAAAAA1BMVEWurq51dlI4AAAAAXRSTlMmkutdmwAAABpJREFUWMPtwQENAAAAwiD7p7bHBwwAAAAg7RD+AAGXD7BoAAAAAElFTkSuQmCC" alt="" title="Le flux de données dans React — Formation Apprendre React" data-type="image_tag" data-img-url="https://motivationjob.com/wp-content/uploads/2023/09/Le-flux-de-donnees-dans-React-—-Formation-Apprendre-React-218x150.jpg" width="218" height="150" /></a></div></div><div class="item-details"><h3 class="entry-title td-module-title"><a href="https://motivationjob.com/advices-skills/developper/le-flux-de-donnees-dans-react-formation-apprendre-react/" rel="bookmark" title="Le flux de données dans React — Formation Apprendre React">Le flux de données dans React — Formation Apprendre React</a></h3></div></div></div><div class="td-related-span4"><div class="td_module_related_posts td-animation-stack td_mod_related_posts"><div class="td-module-image"><div class="td-module-thumb"><a href="https://motivationjob.com/advices-skills/developper/les-formulaires-avec-react-formation-apprendre-react/" rel="bookmark" class="td-image-wrap " title="Les formulaires avec React — Formation Apprendre React" ><img class="entry-thumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANoAAACWAQMAAACCSQSPAAAAA1BMVEWurq51dlI4AAAAAXRSTlMmkutdmwAAABpJREFUWMPtwQENAAAAwiD7p7bHBwwAAAAg7RD+AAGXD7BoAAAAAElFTkSuQmCC" alt="" title="Les formulaires avec React — Formation Apprendre React" data-type="image_tag" data-img-url="https://motivationjob.com/wp-content/uploads/2023/09/Les-formulaires-avec-React-—-Formation-Apprendre-React-218x150.jpg" width="218" height="150" /></a></div></div><div class="item-details"><h3 class="entry-title td-module-title"><a href="https://motivationjob.com/advices-skills/developper/les-formulaires-avec-react-formation-apprendre-react/" rel="bookmark" title="Les formulaires avec React — Formation Apprendre React">Les formulaires avec React — Formation Apprendre React</a></h3></div></div></div><div class="td-related-span4"><div class="td_module_related_posts td-animation-stack td_mod_related_posts"><div class="td-module-image"><div class="td-module-thumb"><a href="https://motivationjob.com/advices-skills/developper/le-hook-usestate-formation-apprendre-react/" rel="bookmark" class="td-image-wrap " title="Le hook useState — Formation Apprendre React" ><img class="entry-thumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANoAAACWAQMAAACCSQSPAAAAA1BMVEWurq51dlI4AAAAAXRSTlMmkutdmwAAABpJREFUWMPtwQENAAAAwiD7p7bHBwwAAAAg7RD+AAGXD7BoAAAAAElFTkSuQmCC" alt="" title="Le hook useState — Formation Apprendre React" data-type="image_tag" data-img-url="https://motivationjob.com/wp-content/uploads/2023/09/Le-hook-useState-—-Formation-Apprendre-React-218x150.jpg" width="218" height="150" /></a></div></div><div class="item-details"><h3 class="entry-title td-module-title"><a href="https://motivationjob.com/advices-skills/developper/le-hook-usestate-formation-apprendre-react/" rel="bookmark" title="Le hook useState — Formation Apprendre React">Le hook useState — Formation Apprendre React</a></h3></div></div></div></div></div><div class="td-next-prev-wrap"><a href="#" class="td-ajax-prev-page ajax-page-disabled" aria-label="prev-page" id="prev-page-tdi_4" data-td_block_id="tdi_4"><i class="td-next-prev-icon td-icon-font td-icon-menu-left"></i></a><a href="#" class="td-ajax-next-page" aria-label="next-page" id="next-page-tdi_4" data-td_block_id="tdi_4"><i class="td-next-prev-icon td-icon-font td-icon-menu-right"></i></a></div></div><div class="comments" id="comments"><div id="respond" class="comment-respond"><h3 id="reply-title" class="comment-reply-title">LEAVE A REPLY <small><a rel="nofollow" id="cancel-comment-reply-link" href="/advices-skills/developper/video-tutorial-comment-module-react/#respond" style="display:none;">Cancel reply</a></small></h3><form action="https://motivationjob.com/wp-comments-post.php" method="post" id="commentform" class="comment-form" novalidate><div class="clearfix"></div><div class="comment-form-input-wrap td-form-comment"><textarea placeholder="Comment:" id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea><div class="td-warning-comment">Please enter your comment!</div></div><div class="comment-form-input-wrap td-form-author"> <input class="" id="author" name="author" placeholder="Name:*" type="text" value="" size="30" aria-required='true' /><div class="td-warning-author">Please enter your name here</div></div><div class="comment-form-input-wrap td-form-email"> <input class="" id="email" name="email" placeholder="Email:*" type="text" value="" size="30" aria-required='true' /><div class="td-warning-email-error">You have entered an incorrect email address!</div><div class="td-warning-email">Please enter your email address here</div></div><div class="comment-form-input-wrap td-form-url"> <input class="" id="url" name="url" placeholder="Website:" type="text" value="" size="30" /></div><p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes" /><label for="wp-comment-cookies-consent">Save my name, email, and website in this browser for the next time I comment.</label></p><p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Post Comment" /> <input type='hidden' name='comment_post_ID' value='2397' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /></p></form></div></div></div></div><div class="td-pb-span4 td-main-sidebar" role="complementary"><div class="td-ss-main-sidebar"> <script src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js" defer data-deferred="1"></script><div class="td-g-rec td-g-rec-id-sidebar tdi_7 td_block_template_4 "><style>/* custom css */ .tdi_7.td-a-rec{ text-align: center; }.tdi_7 .td-element-style{ z-index: -1; }.tdi_7.td-a-rec-img{ text-align: left; }.tdi_7.td-a-rec-img img{ margin: 0 auto 0 0; }@media (max-width: 767px) { .tdi_7.td-a-rec-img { text-align: center; } }</style><script type="text/javascript" src="data:text/javascript;base64,dmFyIHRkX3NjcmVlbl93aWR0aD13aW5kb3cuaW5uZXJXaWR0aDt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXt2YXIgcGxhY2VBZEVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZC1hZC1wbGFjZWhvbGRlciIpO2lmKG51bGwhPT1wbGFjZUFkRWwmJnRkX3NjcmVlbl93aWR0aD49MTE0MCl7dmFyIGFkRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5zIik7cGxhY2VBZEVsLnJlcGxhY2VXaXRoKGFkRWwpO2FkRWwuc2V0QXR0cmlidXRlKCJjbGFzcyIsImFkc2J5Z29vZ2xlIik7YWRFbC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MzAwcHg7aGVpZ2h0OjI1MHB4Iik7YWRFbC5zZXRBdHRyaWJ1dGUoImRhdGEtYWQtY2xpZW50IiwiY2EtcHViLTU1OTc0ODM2NDIzNjEzNTMiKTthZEVsLnNldEF0dHJpYnV0ZSgiZGF0YS1hZC1zbG90IiwiNjY0OTkyNjE0MiIpOyhhZHNieWdvb2dsZT13aW5kb3cuYWRzYnlnb29nbGV8fFtdKS5wdXNoKHt9KX19KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXt2YXIgcGxhY2VBZEVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZC1hZC1wbGFjZWhvbGRlciIpO2lmKG51bGwhPT1wbGFjZUFkRWwmJnRkX3NjcmVlbl93aWR0aD49MTAxOSYmdGRfc2NyZWVuX3dpZHRoPDExNDApe3ZhciBhZEVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucyIpO3BsYWNlQWRFbC5yZXBsYWNlV2l0aChhZEVsKTthZEVsLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCJhZHNieWdvb2dsZSIpO2FkRWwuc2V0QXR0cmlidXRlKCJzdHlsZSIsImRpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjMwMHB4O2hlaWdodDoyNTBweCIpO2FkRWwuc2V0QXR0cmlidXRlKCJkYXRhLWFkLWNsaWVudCIsImNhLXB1Yi01NTk3NDgzNjQyMzYxMzUzIik7YWRFbC5zZXRBdHRyaWJ1dGUoImRhdGEtYWQtc2xvdCIsIjY2NDk5MjYxNDIiKTsoYWRzYnlnb29nbGU9d2luZG93LmFkc2J5Z29vZ2xlfHxbXSkucHVzaCh7fSl9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7dmFyIHBsYWNlQWRFbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGQtYWQtcGxhY2Vob2xkZXIiKTtpZihudWxsIT09cGxhY2VBZEVsJiZ0ZF9zY3JlZW5fd2lkdGg+PTc2OCYmdGRfc2NyZWVuX3dpZHRoPDEwMTkpe3ZhciBhZEVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucyIpO3BsYWNlQWRFbC5yZXBsYWNlV2l0aChhZEVsKTthZEVsLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCJhZHNieWdvb2dsZSIpO2FkRWwuc2V0QXR0cmlidXRlKCJzdHlsZSIsImRpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjIwMHB4O2hlaWdodDoyMDBweCIpO2FkRWwuc2V0QXR0cmlidXRlKCJkYXRhLWFkLWNsaWVudCIsImNhLXB1Yi01NTk3NDgzNjQyMzYxMzUzIik7YWRFbC5zZXRBdHRyaWJ1dGUoImRhdGEtYWQtc2xvdCIsIjY2NDk5MjYxNDIiKTsoYWRzYnlnb29nbGU9d2luZG93LmFkc2J5Z29vZ2xlfHxbXSkucHVzaCh7fSl9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7dmFyIHBsYWNlQWRFbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGQtYWQtcGxhY2Vob2xkZXIiKTtpZihudWxsIT09cGxhY2VBZEVsJiZ0ZF9zY3JlZW5fd2lkdGg8NzY4KXt2YXIgYWRFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnMiKTtwbGFjZUFkRWwucmVwbGFjZVdpdGgoYWRFbCk7YWRFbC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwiYWRzYnlnb29nbGUiKTthZEVsLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDozMDBweDtoZWlnaHQ6MjUwcHgiKTthZEVsLnNldEF0dHJpYnV0ZSgiZGF0YS1hZC1jbGllbnQiLCJjYS1wdWItNTU5NzQ4MzY0MjM2MTM1MyIpO2FkRWwuc2V0QXR0cmlidXRlKCJkYXRhLWFkLXNsb3QiLCI2NjQ5OTI2MTQyIik7KGFkc2J5Z29vZ2xlPXdpbmRvdy5hZHNieWdvb2dsZXx8W10pLnB1c2goe30pfX0p" defer></script> <noscript id="td-ad-placeholder"></noscript></div><div class="td_block_wrap td_block_2 td_block_widget tdi_8 td-pb-border-top td_block_template_4 td-column-1 td_block_padding" data-td-block-uid="tdi_8" > <script src="data:text/javascript;base64,dmFyIGJsb2NrX3RkaV84PW5ldyB0ZEJsb2NrKCk7YmxvY2tfdGRpXzguaWQ9InRkaV84IjtibG9ja190ZGlfOC5hdHRzPSd7ImN1c3RvbV90aXRsZSI6IkxhdGVzdCB1cGRhdGVzIiwiY3VzdG9tX3VybCI6IiIsImJsb2NrX3RlbXBsYXRlX2lkIjoiIiwiaGVhZGVyX2NvbG9yIjoiIyIsImhlYWRlcl90ZXh0X2NvbG9yIjoiIyIsImFjY2VudF90ZXh0X2NvbG9yIjoiIyIsIm0yX3RsIjoiIiwibTJfZWwiOiIiLCJtNl90bCI6IiIsImxpbWl0IjoiNSIsIm9mZnNldCI6IiIsInRpbWVfYWdvX2FkZF90eHQiOiJhZ28iLCJlbF9jbGFzcyI6IiIsInBvc3RfaWRzIjoiIiwiY2F0ZWdvcnlfaWQiOiIiLCJjYXRlZ29yeV9pZHMiOiIiLCJ0YWdfc2x1ZyI6IiIsImF1dG9yc19pZCI6IiIsImluc3RhbGxlZF9wb3N0X3R5cGVzIjoiIiwic29ydCI6IiIsInRkX2FqYXhfZmlsdGVyX3R5cGUiOiIiLCJ0ZF9hamF4X2ZpbHRlcl9pZHMiOiIiLCJ0ZF9maWx0ZXJfZGVmYXVsdF90eHQiOiJBbGwiLCJ0ZF9hamF4X3ByZWxvYWRpbmciOiIiLCJhamF4X3BhZ2luYXRpb24iOiIiLCJhamF4X3BhZ2luYXRpb25faW5maW5pdGVfc3RvcCI6IiIsImNsYXNzIjoidGRfYmxvY2tfd2lkZ2V0IHRkaV84IiwiYmxvY2tfdHlwZSI6InRkX2Jsb2NrXzIiLCJzZXBhcmF0b3IiOiIiLCJzaG93X21vZGlmaWVkX2RhdGUiOiIiLCJ0aW1lX2FnbyI6IiIsImZfaGVhZGVyX2ZvbnRfaGVhZGVyIjoiIiwiZl9oZWFkZXJfZm9udF90aXRsZSI6IkJsb2NrIGhlYWRlciIsImZfaGVhZGVyX2ZvbnRfc2V0dGluZ3MiOiIiLCJmX2hlYWRlcl9mb250X2ZhbWlseSI6IiIsImZfaGVhZGVyX2ZvbnRfc2l6ZSI6IiIsImZfaGVhZGVyX2ZvbnRfbGluZV9oZWlnaHQiOiIiLCJmX2hlYWRlcl9mb250X3N0eWxlIjoiIiwiZl9oZWFkZXJfZm9udF93ZWlnaHQiOiIiLCJmX2hlYWRlcl9mb250X3RyYW5zZm9ybSI6IiIsImZfaGVhZGVyX2ZvbnRfc3BhY2luZyI6IiIsImZfaGVhZGVyXyI6IiIsImZfYWpheF9mb250X3RpdGxlIjoiQWpheCBjYXRlZ29yaWVzIiwiZl9hamF4X2ZvbnRfc2V0dGluZ3MiOiIiLCJmX2FqYXhfZm9udF9mYW1pbHkiOiIiLCJmX2FqYXhfZm9udF9zaXplIjoiIiwiZl9hamF4X2ZvbnRfbGluZV9oZWlnaHQiOiIiLCJmX2FqYXhfZm9udF9zdHlsZSI6IiIsImZfYWpheF9mb250X3dlaWdodCI6IiIsImZfYWpheF9mb250X3RyYW5zZm9ybSI6IiIsImZfYWpheF9mb250X3NwYWNpbmciOiIiLCJmX2FqYXhfIjoiIiwiZl9tb3JlX2ZvbnRfdGl0bGUiOiJMb2FkIG1vcmUgYnV0dG9uIiwiZl9tb3JlX2ZvbnRfc2V0dGluZ3MiOiIiLCJmX21vcmVfZm9udF9mYW1pbHkiOiIiLCJmX21vcmVfZm9udF9zaXplIjoiIiwiZl9tb3JlX2ZvbnRfbGluZV9oZWlnaHQiOiIiLCJmX21vcmVfZm9udF9zdHlsZSI6IiIsImZfbW9yZV9mb250X3dlaWdodCI6IiIsImZfbW9yZV9mb250X3RyYW5zZm9ybSI6IiIsImZfbW9yZV9mb250X3NwYWNpbmciOiIiLCJmX21vcmVfIjoiIiwibTJmX3RpdGxlX2ZvbnRfaGVhZGVyIjoiIiwibTJmX3RpdGxlX2ZvbnRfdGl0bGUiOiJBcnRpY2xlIHRpdGxlIiwibTJmX3RpdGxlX2ZvbnRfc2V0dGluZ3MiOiIiLCJtMmZfdGl0bGVfZm9udF9mYW1pbHkiOiIiLCJtMmZfdGl0bGVfZm9udF9zaXplIjoiIiwibTJmX3RpdGxlX2ZvbnRfbGluZV9oZWlnaHQiOiIiLCJtMmZfdGl0bGVfZm9udF9zdHlsZSI6IiIsIm0yZl90aXRsZV9mb250X3dlaWdodCI6IiIsIm0yZl90aXRsZV9mb250X3RyYW5zZm9ybSI6IiIsIm0yZl90aXRsZV9mb250X3NwYWNpbmciOiIiLCJtMmZfdGl0bGVfIjoiIiwibTJmX2NhdF9mb250X3RpdGxlIjoiQXJ0aWNsZSBjYXRlZ29yeSB0YWciLCJtMmZfY2F0X2ZvbnRfc2V0dGluZ3MiOiIiLCJtMmZfY2F0X2ZvbnRfZmFtaWx5IjoiIiwibTJmX2NhdF9mb250X3NpemUiOiIiLCJtMmZfY2F0X2ZvbnRfbGluZV9oZWlnaHQiOiIiLCJtMmZfY2F0X2ZvbnRfc3R5bGUiOiIiLCJtMmZfY2F0X2ZvbnRfd2VpZ2h0IjoiIiwibTJmX2NhdF9mb250X3RyYW5zZm9ybSI6IiIsIm0yZl9jYXRfZm9udF9zcGFjaW5nIjoiIiwibTJmX2NhdF8iOiIiLCJtMmZfbWV0YV9mb250X3RpdGxlIjoiQXJ0aWNsZSBtZXRhIGluZm8iLCJtMmZfbWV0YV9mb250X3NldHRpbmdzIjoiIiwibTJmX21ldGFfZm9udF9mYW1pbHkiOiIiLCJtMmZfbWV0YV9mb250X3NpemUiOiIiLCJtMmZfbWV0YV9mb250X2xpbmVfaGVpZ2h0IjoiIiwibTJmX21ldGFfZm9udF9zdHlsZSI6IiIsIm0yZl9tZXRhX2ZvbnRfd2VpZ2h0IjoiIiwibTJmX21ldGFfZm9udF90cmFuc2Zvcm0iOiIiLCJtMmZfbWV0YV9mb250X3NwYWNpbmciOiIiLCJtMmZfbWV0YV8iOiIiLCJtMmZfZXhfZm9udF90aXRsZSI6IkFydGljbGUgZXhjZXJwdCIsIm0yZl9leF9mb250X3NldHRpbmdzIjoiIiwibTJmX2V4X2ZvbnRfZmFtaWx5IjoiIiwibTJmX2V4X2ZvbnRfc2l6ZSI6IiIsIm0yZl9leF9mb250X2xpbmVfaGVpZ2h0IjoiIiwibTJmX2V4X2ZvbnRfc3R5bGUiOiIiLCJtMmZfZXhfZm9udF93ZWlnaHQiOiIiLCJtMmZfZXhfZm9udF90cmFuc2Zvcm0iOiIiLCJtMmZfZXhfZm9udF9zcGFjaW5nIjoiIiwibTJmX2V4XyI6IiIsIm02Zl90aXRsZV9mb250X2hlYWRlciI6IiIsIm02Zl90aXRsZV9mb250X3RpdGxlIjoiQXJ0aWNsZSB0aXRsZSIsIm02Zl90aXRsZV9mb250X3NldHRpbmdzIjoiIiwibTZmX3RpdGxlX2ZvbnRfZmFtaWx5IjoiIiwibTZmX3RpdGxlX2ZvbnRfc2l6ZSI6IiIsIm02Zl90aXRsZV9mb250X2xpbmVfaGVpZ2h0IjoiIiwibTZmX3RpdGxlX2ZvbnRfc3R5bGUiOiIiLCJtNmZfdGl0bGVfZm9udF93ZWlnaHQiOiIiLCJtNmZfdGl0bGVfZm9udF90cmFuc2Zvcm0iOiIiLCJtNmZfdGl0bGVfZm9udF9zcGFjaW5nIjoiIiwibTZmX3RpdGxlXyI6IiIsIm02Zl9jYXRfZm9udF90aXRsZSI6IkFydGljbGUgY2F0ZWdvcnkgdGFnIiwibTZmX2NhdF9mb250X3NldHRpbmdzIjoiIiwibTZmX2NhdF9mb250X2ZhbWlseSI6IiIsIm02Zl9jYXRfZm9udF9zaXplIjoiIiwibTZmX2NhdF9mb250X2xpbmVfaGVpZ2h0IjoiIiwibTZmX2NhdF9mb250X3N0eWxlIjoiIiwibTZmX2NhdF9mb250X3dlaWdodCI6IiIsIm02Zl9jYXRfZm9udF90cmFuc2Zvcm0iOiIiLCJtNmZfY2F0X2ZvbnRfc3BhY2luZyI6IiIsIm02Zl9jYXRfIjoiIiwibTZmX21ldGFfZm9udF90aXRsZSI6IkFydGljbGUgbWV0YSBpbmZvIiwibTZmX21ldGFfZm9udF9zZXR0aW5ncyI6IiIsIm02Zl9tZXRhX2ZvbnRfZmFtaWx5IjoiIiwibTZmX21ldGFfZm9udF9zaXplIjoiIiwibTZmX21ldGFfZm9udF9saW5lX2hlaWdodCI6IiIsIm02Zl9tZXRhX2ZvbnRfc3R5bGUiOiIiLCJtNmZfbWV0YV9mb250X3dlaWdodCI6IiIsIm02Zl9tZXRhX2ZvbnRfdHJhbnNmb3JtIjoiIiwibTZmX21ldGFfZm9udF9zcGFjaW5nIjoiIiwibTZmX21ldGFfIjoiIiwiY3NzIjoiIiwidGRjX2NzcyI6IiIsInRkX2NvbHVtbl9udW1iZXIiOjEsImNvbG9yX3ByZXNldCI6IiIsImJvcmRlcl90b3AiOiIiLCJ0ZGNfY3NzX2NsYXNzIjoidGRpXzgiLCJ0ZGNfY3NzX2NsYXNzX3N0eWxlIjoidGRpXzhfcmFuZF9zdHlsZSJ9JztibG9ja190ZGlfOC50ZF9jb2x1bW5fbnVtYmVyPSIxIjtibG9ja190ZGlfOC5ibG9ja190eXBlPSJ0ZF9ibG9ja18yIjtibG9ja190ZGlfOC5wb3N0X2NvdW50PSI1IjtibG9ja190ZGlfOC5mb3VuZF9wb3N0cz0iNzgwMzkiO2Jsb2NrX3RkaV84LmhlYWRlcl9jb2xvcj0iIyI7YmxvY2tfdGRpXzguYWpheF9wYWdpbmF0aW9uX2luZmluaXRlX3N0b3A9IiI7YmxvY2tfdGRpXzgubWF4X251bV9wYWdlcz0iMTU2MDgiO3RkQmxvY2tzQXJyYXkucHVzaChibG9ja190ZGlfOCk=" defer></script><div class="td-block-title-wrap"><h4 class="td-block-title"><span class="td-pulldown-size">Latest updates</span></h4></div><div id=tdi_8 class="td_block_inner"><div class="td-block-span12"><div class="td_module_2 td_module_wrap td-animation-stack"><div class="td-module-image"><div class="td-module-thumb"><a href="https://motivationjob.com/advices-skills/developper/le-flux-de-donnees-dans-react-formation-apprendre-react/" rel="bookmark" class="td-image-wrap " title="Le flux de données dans React — Formation Apprendre React" ><img class="entry-thumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUQAAACgAQMAAABOhoelAAAAA1BMVEWurq51dlI4AAAAAXRSTlMmkutdmwAAAB1JREFUWMPtwTEBAAAAwiD7p/ZdCGAAAAAAAAAQBxpAAAH8le3bAAAAAElFTkSuQmCC" alt="" title="Le flux de données dans React — Formation Apprendre React" data-type="image_tag" data-img-url="https://motivationjob.com/wp-content/uploads/2023/09/Le-flux-de-donnees-dans-React-—-Formation-Apprendre-React-324x160.jpg" width="324" height="160" /></a></div></div><h3 class="entry-title td-module-title"><a href="https://motivationjob.com/advices-skills/developper/le-flux-de-donnees-dans-react-formation-apprendre-react/" rel="bookmark" title="Le flux de données dans React — Formation Apprendre React">Le flux de données dans React — Formation Apprendre React</a></h3><div class="td-module-meta-info"> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2023-09-21T05:27:06-04:00" >September 21, 2023</time></span></div><div class="td-excerpt"> Le flux de données dans React — Formation Apprendre ReactDans...</div></div></div><div class="td-block-span12"><div class="td_module_6 td_module_wrap td-animation-stack"><div class="td-module-thumb"><a href="https://motivationjob.com/advices-skills/developper/les-formulaires-avec-react-formation-apprendre-react/" rel="bookmark" class="td-image-wrap " title="Les formulaires avec React — Formation Apprendre React" ><img class="entry-thumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABGAQMAAAAASKMqAAAAA1BMVEWurq51dlI4AAAAAXRSTlMmkutdmwAAABBJREFUKM9jGAWjYBQMKwAAA9QAAQWBn6cAAAAASUVORK5CYII=" alt="" title="Les formulaires avec React — Formation Apprendre React" data-type="image_tag" data-img-url="https://motivationjob.com/wp-content/uploads/2023/09/Les-formulaires-avec-React-—-Formation-Apprendre-React-100x70.jpg" width="100" height="70" /></a></div><div class="item-details"><h3 class="entry-title td-module-title"><a href="https://motivationjob.com/advices-skills/developper/les-formulaires-avec-react-formation-apprendre-react/" rel="bookmark" title="Les formulaires avec React — Formation Apprendre React">Les formulaires avec React — Formation Apprendre React</a></h3><div class="td-module-meta-info"> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2023-09-20T06:04:09-04:00" >September 20, 2023</time></span></div></div></div></div><div class="td-block-span12"><div class="td_module_6 td_module_wrap td-animation-stack"><div class="td-module-thumb"><a href="https://motivationjob.com/advices-skills/developper/le-hook-usestate-formation-apprendre-react/" rel="bookmark" class="td-image-wrap " title="Le hook useState — Formation Apprendre React" ><img class="entry-thumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABGAQMAAAAASKMqAAAAA1BMVEWurq51dlI4AAAAAXRSTlMmkutdmwAAABBJREFUKM9jGAWjYBQMKwAAA9QAAQWBn6cAAAAASUVORK5CYII=" alt="" title="Le hook useState — Formation Apprendre React" data-type="image_tag" data-img-url="https://motivationjob.com/wp-content/uploads/2023/09/Le-hook-useState-—-Formation-Apprendre-React-100x70.jpg" width="100" height="70" /></a></div><div class="item-details"><h3 class="entry-title td-module-title"><a href="https://motivationjob.com/advices-skills/developper/le-hook-usestate-formation-apprendre-react/" rel="bookmark" title="Le hook useState — Formation Apprendre React">Le hook useState — Formation Apprendre React</a></h3><div class="td-module-meta-info"> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2023-09-19T05:40:04-04:00" >September 19, 2023</time></span></div></div></div></div><div class="td-block-span12"><div class="td_module_6 td_module_wrap td-animation-stack"><div class="td-module-thumb"><a href="https://motivationjob.com/advices-skills/developper/nouvelle-version-de-la-formation-react/" rel="bookmark" class="td-image-wrap " title="Nouvelle version de la formation React !" ><img class="entry-thumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABGAQMAAAAASKMqAAAAA1BMVEWurq51dlI4AAAAAXRSTlMmkutdmwAAABBJREFUKM9jGAWjYBQMKwAAA9QAAQWBn6cAAAAASUVORK5CYII=" alt="" title="Nouvelle version de la formation React !" data-type="image_tag" data-img-url="https://motivationjob.com/wp-content/uploads/2023/09/Nouvelle-version-de-la-formation-React-100x70.png" width="100" height="70" /></a></div><div class="item-details"><h3 class="entry-title td-module-title"><a href="https://motivationjob.com/advices-skills/developper/nouvelle-version-de-la-formation-react/" rel="bookmark" title="Nouvelle version de la formation React !">Nouvelle version de la formation React !</a></h3><div class="td-module-meta-info"> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2023-09-18T12:23:20-04:00" >September 18, 2023</time></span></div></div></div></div><div class="td-block-span12"><div class="td_module_6 td_module_wrap td-animation-stack"><div class="td-module-thumb"><a href="https://motivationjob.com/advices-skills/developper/installation-de-react-formation-apprendre-react/" rel="bookmark" class="td-image-wrap " title="Installation de React — Formation Apprendre React" ><img class="entry-thumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABGAQMAAAAASKMqAAAAA1BMVEWurq51dlI4AAAAAXRSTlMmkutdmwAAABBJREFUKM9jGAWjYBQMKwAAA9QAAQWBn6cAAAAASUVORK5CYII=" alt="" title="Installation de React — Formation Apprendre React" data-type="image_tag" data-img-url="https://motivationjob.com/wp-content/uploads/2023/09/Installation-de-React-—-Formation-Apprendre-React-100x70.jpg" width="100" height="70" /></a></div><div class="item-details"><h3 class="entry-title td-module-title"><a href="https://motivationjob.com/advices-skills/developper/installation-de-react-formation-apprendre-react/" rel="bookmark" title="Installation de React — Formation Apprendre React">Installation de React — Formation Apprendre React</a></h3><div class="td-module-meta-info"> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2023-09-18T11:22:06-04:00" >September 18, 2023</time></span></div></div></div></div></div></div> <script src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js" defer data-deferred="1"></script><div class="td-g-rec td-g-rec-id-sidebar tdi_9 td_block_template_4 "><style>/* custom css */ .tdi_9.td-a-rec{ text-align: center; }.tdi_9 .td-element-style{ z-index: -1; }.tdi_9.td-a-rec-img{ text-align: left; }.tdi_9.td-a-rec-img img{ margin: 0 auto 0 0; }@media (max-width: 767px) { .tdi_9.td-a-rec-img { text-align: center; } }</style><script type="text/javascript" src="data:text/javascript;base64,dmFyIHRkX3NjcmVlbl93aWR0aD13aW5kb3cuaW5uZXJXaWR0aDt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXt2YXIgcGxhY2VBZEVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZC1hZC1wbGFjZWhvbGRlciIpO2lmKG51bGwhPT1wbGFjZUFkRWwmJnRkX3NjcmVlbl93aWR0aD49MTE0MCl7dmFyIGFkRWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5zIik7cGxhY2VBZEVsLnJlcGxhY2VXaXRoKGFkRWwpO2FkRWwuc2V0QXR0cmlidXRlKCJjbGFzcyIsImFkc2J5Z29vZ2xlIik7YWRFbC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwiZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MzAwcHg7aGVpZ2h0OjI1MHB4Iik7YWRFbC5zZXRBdHRyaWJ1dGUoImRhdGEtYWQtY2xpZW50IiwiY2EtcHViLTU1OTc0ODM2NDIzNjEzNTMiKTthZEVsLnNldEF0dHJpYnV0ZSgiZGF0YS1hZC1zbG90IiwiNjY0OTkyNjE0MiIpOyhhZHNieWdvb2dsZT13aW5kb3cuYWRzYnlnb29nbGV8fFtdKS5wdXNoKHt9KX19KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXt2YXIgcGxhY2VBZEVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZC1hZC1wbGFjZWhvbGRlciIpO2lmKG51bGwhPT1wbGFjZUFkRWwmJnRkX3NjcmVlbl93aWR0aD49MTAxOSYmdGRfc2NyZWVuX3dpZHRoPDExNDApe3ZhciBhZEVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucyIpO3BsYWNlQWRFbC5yZXBsYWNlV2l0aChhZEVsKTthZEVsLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCJhZHNieWdvb2dsZSIpO2FkRWwuc2V0QXR0cmlidXRlKCJzdHlsZSIsImRpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjMwMHB4O2hlaWdodDoyNTBweCIpO2FkRWwuc2V0QXR0cmlidXRlKCJkYXRhLWFkLWNsaWVudCIsImNhLXB1Yi01NTk3NDgzNjQyMzYxMzUzIik7YWRFbC5zZXRBdHRyaWJ1dGUoImRhdGEtYWQtc2xvdCIsIjY2NDk5MjYxNDIiKTsoYWRzYnlnb29nbGU9d2luZG93LmFkc2J5Z29vZ2xlfHxbXSkucHVzaCh7fSl9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7dmFyIHBsYWNlQWRFbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGQtYWQtcGxhY2Vob2xkZXIiKTtpZihudWxsIT09cGxhY2VBZEVsJiZ0ZF9zY3JlZW5fd2lkdGg+PTc2OCYmdGRfc2NyZWVuX3dpZHRoPDEwMTkpe3ZhciBhZEVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucyIpO3BsYWNlQWRFbC5yZXBsYWNlV2l0aChhZEVsKTthZEVsLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCJhZHNieWdvb2dsZSIpO2FkRWwuc2V0QXR0cmlidXRlKCJzdHlsZSIsImRpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjIwMHB4O2hlaWdodDoyMDBweCIpO2FkRWwuc2V0QXR0cmlidXRlKCJkYXRhLWFkLWNsaWVudCIsImNhLXB1Yi01NTk3NDgzNjQyMzYxMzUzIik7YWRFbC5zZXRBdHRyaWJ1dGUoImRhdGEtYWQtc2xvdCIsIjY2NDk5MjYxNDIiKTsoYWRzYnlnb29nbGU9d2luZG93LmFkc2J5Z29vZ2xlfHxbXSkucHVzaCh7fSl9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7dmFyIHBsYWNlQWRFbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGQtYWQtcGxhY2Vob2xkZXIiKTtpZihudWxsIT09cGxhY2VBZEVsJiZ0ZF9zY3JlZW5fd2lkdGg8NzY4KXt2YXIgYWRFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnMiKTtwbGFjZUFkRWwucmVwbGFjZVdpdGgoYWRFbCk7YWRFbC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwiYWRzYnlnb29nbGUiKTthZEVsLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDozMDBweDtoZWlnaHQ6MjUwcHgiKTthZEVsLnNldEF0dHJpYnV0ZSgiZGF0YS1hZC1jbGllbnQiLCJjYS1wdWItNTU5NzQ4MzY0MjM2MTM1MyIpO2FkRWwuc2V0QXR0cmlidXRlKCJkYXRhLWFkLXNsb3QiLCI2NjQ5OTI2MTQyIik7KGFkc2J5Z29vZ2xlPXdpbmRvdy5hZHNieWdvb2dsZXx8W10pLnB1c2goe30pfX0p" defer></script> <noscript id="td-ad-placeholder"></noscript></div></div></div></div></article></div></div><div class="tdc-footer-wrap "><div class="td-footer-wrapper td-footer-container td-container-wrap td-footer-template-14 td_stretch_container td_stretch_content_1400"><div class="td-container td-footer-bottom-full"><div class="td-pb-row"><div class="td-pb-span3"><aside class="footer-logo-wrap"><a href="https://motivationjob.com/"><img class="td-retina-data" src="https://motivationjob.com/wp-content/uploads/2019/05/logo-mobile.png" data-retina="https://motivationjob.com/wp-content/uploads/2019/05/logo-mobile-retina.png" alt="MotivationJob is focussed on empowering entrepreneurs worldwide to do greater things and build awesome companies. We do this by collecting and curating knowledge, inspiration and background business stories from around the web." title="MotivationJob : leading Business Inspiration and creativity Magazine, we provide a handpicked content, lists, infographics and more to help you TO SUCCESS in your business." width="140" height="31" /></a></aside></div><div class="td-pb-span5"><aside class="footer-text-wrap"><div class="block-title"><span>ABOUT US</span></div>MotivationJob is focussed on empowering entrepreneurs worldwide to do greater things and build awesome companies. We do this by collecting and curating knowledge, inspiration and background business stories from around the web.</aside></div><div class="td-pb-span4"><aside class="footer-social-wrap td-social-style-2"><div class="block-title"><span>FOLLOW US</span></div> <span class="td-social-icon-wrap"> <a target="_blank" href="#" title="Facebook"> <i class="td-icon-font td-icon-facebook"></i> </a> </span> <span class="td-social-icon-wrap"> <a target="_blank" href="#" title="Instagram"> <i class="td-icon-font td-icon-instagram"></i> </a> </span> <span class="td-social-icon-wrap"> <a target="_blank" href="#" title="Twitter"> <i class="td-icon-font td-icon-twitter"></i> </a> </span> <span class="td-social-icon-wrap"> <a target="_blank" href="#" title="Youtube"> <i class="td-icon-font td-icon-youtube"></i> </a> </span></aside></div></div></div></div><div class="td-sub-footer-container td-container-wrap td_stretch_container td_stretch_content_1400"><div class="td-container"><div class="td-pb-row"><div class="td-pb-span td-sub-footer-menu"><div class="menu-footer-container"><ul id="menu-footer" class="td-subfooter-menu"><li id="menu-item-125" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-first td-menu-item td-normal-menu menu-item-125"><a href="https://motivationjob.com/about-us/">About us</a></li><li id="menu-item-126" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy td-menu-item td-normal-menu menu-item-126"><a href="https://motivationjob.com/privacy-policy/">Privacy Policy</a></li><li id="menu-item-127" class="menu-item menu-item-type-post_type menu-item-object-page td-menu-item td-normal-menu menu-item-127"><a href="https://motivationjob.com/contact/">Contact us</a></li></ul></div></div><div class="td-pb-span td-sub-footer-copy"> © MotivationJob - Creativity, Passion, Possibilities</div></div></div></div></div></div> <script data-optimized="1" type='text/javascript' src='https://motivationjob.com/wp-content/litespeed/js/8b61a0c83969cbfbb6549c0b45a2c033.js?ver=2c033' id='underscore-js' defer data-deferred="1"></script> <script data-optimized="1" type='text/javascript' src='https://motivationjob.com/wp-content/litespeed/js/22ec7cbb72056f4b485719335e11f841.js?ver=1f841' id='tdb_js_posts_autoload-js' defer data-deferred="1"></script> <script data-optimized="1" type='text/javascript' src='https://motivationjob.com/wp-content/litespeed/js/5558712d367da057baaa072664152ecd.js?ver=52ecd' id='td-site-min-js' defer data-deferred="1"></script> <script data-optimized="1" type='text/javascript' src='https://motivationjob.com/wp-content/litespeed/js/511bc711c2a85e6a8fb51409ca239576.js?ver=39576' id='comment-reply-js' defer data-deferred="1"></script> <script data-optimized="1" type='text/javascript' src='https://motivationjob.com/wp-content/litespeed/js/eb7b19e7f6f2efaf5819214a50ef1b73.js?ver=f1b73' id='tdb_js_files_for_front-js' defer data-deferred="1"></script> <script></script> <script src='https://stats.wp.com/e-202338.js' defer></script> <script data-optimized="1" src="data:text/javascript;base64,X3N0cT13aW5kb3cuX3N0cXx8W107X3N0cS5wdXNoKFsndmlldycse3Y6J2V4dCcsajonMToxMS4yLjEnLGJsb2c6JzE2MjI3NzE2MicscG9zdDonMjM5NycsdHo6Jy00JyxzcnY6J21vdGl2YXRpb25qb2IuY29tJ31dKTtfc3RxLnB1c2goWydjbGlja1RyYWNrZXJJbml0JywnMTYyMjc3MTYyJywnMjM5NyddKQ==" defer></script> </body></html> <!-- Page optimized by LiteSpeed Cache @2023-09-22 00:38:48 --> <!-- Page supported by LiteSpeed Cache 5.1 on 2023-09-22 00:38:47 -->