{"id":5423,"date":"2021-02-01T11:26:48","date_gmt":"2021-02-01T11:26:48","guid":{"rendered":"https:\/\/www.folio3.com\/mobile\/?p=5423"},"modified":"2021-02-17T11:24:49","modified_gmt":"2021-02-17T11:24:49","slug":"how-to-measure-react-app-performance","status":"publish","type":"post","link":"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/","title":{"rendered":"How to measure React app performance"},"content":{"rendered":"\n<p>Performance is the key aspect of high-quality software. While developing any software, one must know how to make it performant enough. In this blog, we will see how we can measure the React app performance through React Profiler.&nbsp;<\/p>\n\n\n\n<p>In <a href=\"https:\/\/www.folio3.com\/mobile\/react-native-app-development\/\">React app development<\/a>, we are mostly playing around on components. Components let you split the UI into independent, reusable pieces. You create a component and React renders it to DOM.&nbsp;<\/p>\n\n\n\n<p><strong>BUT \u2026.<\/strong>&nbsp;<\/p>\n\n\n\n<p>But the main problem here is to ensure that these components should not render unnecessarily, and the cost of rendering should be optimized enough.&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>React Profiler<\/strong><em>&nbsp;<\/em><\/h4>\n\n\n\n<p>The React profiler measures how often a component is rendered and what&#8217;s the cost of rendering. Its purpose is to help identify parts of an application that are slow so that we can work on optimizing them.&nbsp;<\/p>\n\n\n\n<p><strong>Note<\/strong>:&nbsp;<\/p>\n\n\n\n<p>Profiling adds some additional overhead, so it is disabled in <a href=\"https:\/\/reactjs.org\/docs\/optimizing-performance.html#use-the-production-build\">the production build<\/a>.&nbsp;<\/p>\n\n\n\n<p>To opt into production profiling, React provides a special production build with profiling enabled. Read more about how to use this build at <a href=\"https:\/\/fb.me\/react-profiling\">fb.me\/react-profiling<\/a>.&nbsp;<\/p>\n\n\n\n<p><strong>Usage<\/strong>&nbsp;<\/p>\n\n\n\n<p>To profile the application, open <a href=\"https:\/\/chrome.google.com\/webstore\/detail\/react-developer-tools\/fmkadmapgofadopljbjfkapdkoienihi?hl=en\">React Dev tools<\/a>, start recording an activity, render any components and stop the recording.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/-C391OjR56DSeuhzvjtQ75uq-ZIEpZnv3jBLdmYxhQtZ16j3aOZZXM82Qla4YvINA9FgKMlFVR9Anzf_JiYrEvmImdgo6tjyXXD7lkOLYjF4Tnaf0jlPn0d8P0CNMhOBQ6b2ttGv\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Example<\/strong><em>&nbsp;&nbsp;<\/em><\/p>\n\n\n\n<p>As an example, on how to find performance measures of a component, I have created a basic <strong>App<\/strong> component, which has an input field and a <strong>Counter<\/strong> component.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/rPmkWvwcTqnHDghalPU2IqnkOU3RLvr71r9C3DrYMZvQtePUUucHwomY4D0zG1ObwyZEXQVzNa1_UDKa_M38DsQuwi4vBqDvXgkbfIgGaU0t-vT3eUgtUKmJUpIQrg1nEIlodIRI\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/mgDssI21yvGr295tI8yJtO1cVpoiwyW4hYw-uPi90yUKQ9iTvYWvyoh37Wc3-oiDBRJ3-MXi1AQ7pVcXXEM7Or3M7o0BkI6Bq846PjQ73evo-18tamG8jFymuP3TgXrOhSOYzi4q\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/yeRyg2n5rNbmAejgUYVQbDEGhsX3K3uK0nQPsFHVVluKvgEU3_yrOZOvAYQ4PMc4QtbKtLUYU2eJqkcIOZ2IdDQXEB2iHkQHavx94qdj0-Uvnt-gH6Gzm90NgEM7aRDbDnj3KLyW\" alt=\"\"\/><\/figure>\n\n\n\n<p>As I type in the input field the App component changes its state and re-rendered itself with the updated input value. Now let <strong>Profile<\/strong> this in React Dev tool and see how our components got ranked based on the rendering time.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/1jPTWB2MJOb_QTLyhLvEQFiCx1iy07Uvc48tfKG112OVBpVNHwVWtA8U13vwrQeo2PmahgwziMaIbZ5Tmg1BdAC01PrE4KQO4aNADis7ZqDj_Dj6OC8Uhnp94KppQVr23AdIKTv-\" alt=\"\"\/><\/figure>\n\n\n\n<p>As you can see in the dev tool ranked view, it highlights the <strong>Counter component in yellow, <\/strong>this means we have some problem in this component, and we can optimize it.&nbsp;<\/p>\n\n\n\n<p>If you notice in the right side window, <strong>the Counter<\/strong> component re-render itself three times on every keystroke and takes a total time of 1.2ms on render. Although this component has nothing to do with the input value on the App component.&nbsp;<\/p>\n\n\n\n<p>In order to avoid this re-render, you can memorize your Counter component. I am not going to show you how to do that as it is not part of our topic right now. What I want to demonstrate here is how efficiently we can measure our app performance and bottlenecks through React Profiler.&nbsp;<\/p>\n\n\n\n<p>The Profiler is indeed useful but a bit cumbersome to perform an activity and record. There is another way to profile a component programmatically. That&#8217;s through <a href=\"https:\/\/reactjs.org\/docs\/profiler.html\">React Profiler API<\/a>.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Using Profiler API is simple, you can do that in two steps.&nbsp;<\/p>\n\n\n\n<p>First, import Profiler from React in your file.&nbsp;<\/p>\n\n\n\n<p><code>import {Profiler} from \u201creact\u201d&nbsp;<\/code><\/p>\n\n\n\n<p>Secondly, wrap your component inside &lt;<strong>Profiler \/&gt;, <\/strong>&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/8LkrXgPb6yC0GCgDnmeq52YG8BlEj_XXQNb9dNOZKDqiwV7OxRfDEpkWKb9AC5t8mQHN1r7uFxhBUt9tZDMtXovEr8FbjQZE_yKSKLCb6Vavq3WXJo6L8M2TcBM1n_p44WinFPDy\" alt=\"\"\/><\/figure>\n\n\n\n<p>The Profiler takes two properties. An <strong>id<\/strong> to uniquely identify the commit and <strong>onRender<\/strong> callback that describe what was rendered and the length of time it took, includes following&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>phase<\/strong>: \u201cmount\u201d (if tree mounted) or \u201cupdate\u201d (if re-rendered)<\/li><li><strong>actualDuration<\/strong>: time rendering the committed update<\/li><li><strong>baseDuration<\/strong>: estimated time to render full subtree without memoization<\/li><li><strong>startTime<\/strong>: Time when Reach began rendering the update<\/li><li><strong>commitTime<\/strong>: Time when React committed the update<\/li><li><strong>interactions<\/strong>: interactions belonging to the update<\/li><\/ul>\n\n\n\n<p>Now reload the application and head over to the console. You will see the following timings.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/ibTKq4huLUAemiGtF3wR3TcHysP3_6rZp7DjPJVYfdNWtFbbdGTq9xuJ8r79Qv5-ZcG3-r1-kELpatLoGsdANgLwH06T6CgoXwYveYIWnUgBDdkkvk_iZhpETLRX5DIXJZSTBrui\" alt=\"\"\/><\/figure>\n\n\n\n<p>As I type in the input field, on every keystroke the Counter component gets re-rendered taking an extra amount of time, so here you have to see what causes this re-render and how you can optimize it.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/YY71KQe3eWCEmuSOAxm6f3M3zvwNsxJ4JrDKPwVUJO3E7Xzq4lrs9Q7QCCwSY_SR2sjh1OL8dLHBj9fkDfvaA7-Erfnr_6UVkOKLb2u5RN5gJbEkzfBx_3AFT9XtdNPjLcKl4Lvm\" alt=\"\"\/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Conclusion:<\/strong><\/h4>\n\n\n\n<p>React Profiler is a great tool to measure the performance cost of your application. It helps you identify the performance bottleneck in your application so that you can identify those and fix them during development.<br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Performance is the key aspect of high-quality software. While developing any software, one must know how to make it performant enough. In this blog, we will see how we can measure the React app performance through React Profiler.&nbsp; In React app development, we are mostly playing around on components. Components let you split the UI &hellip; <a href=\"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;How to measure React app performance&#8221;<\/span><\/a><\/p>\n","protected":false},"author":37,"featured_media":5425,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[50],"tags":[],"class_list":["post-5423","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-react-native"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to measure React app performance - Mobile App Development Services<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to measure React app performance - Mobile App Development Services\" \/>\n<meta property=\"og:description\" content=\"Performance is the key aspect of high-quality software. While developing any software, one must know how to make it performant enough. In this blog, we will see how we can measure the React app performance through React Profiler.&nbsp; In React app development, we are mostly playing around on components. Components let you split the UI &hellip; Continue reading &quot;How to measure React app performance&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/\" \/>\n<meta property=\"og:site_name\" content=\"Mobile App Development Services\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-01T11:26:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-17T11:24:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2021\/02\/dashboard-alt-icon-840x410-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"840\" \/>\n\t<meta property=\"og:image:height\" content=\"410\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Noc Folio3\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Noc Folio3\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/\"},\"author\":{\"name\":\"Noc Folio3\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/#\/schema\/person\/0b6e4f68efbd12d222ac9422766c61eb\"},\"headline\":\"How to measure React app performance\",\"datePublished\":\"2021-02-01T11:26:48+00:00\",\"dateModified\":\"2021-02-17T11:24:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/\"},\"wordCount\":641,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2021\/02\/dashboard-alt-icon-840x410-1.png\",\"articleSection\":[\"React Native\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/\",\"url\":\"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/\",\"name\":\"How to measure React app performance - Mobile App Development Services\",\"isPartOf\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2021\/02\/dashboard-alt-icon-840x410-1.png\",\"datePublished\":\"2021-02-01T11:26:48+00:00\",\"dateModified\":\"2021-02-17T11:24:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/#primaryimage\",\"url\":\"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2021\/02\/dashboard-alt-icon-840x410-1.png\",\"contentUrl\":\"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2021\/02\/dashboard-alt-icon-840x410-1.png\",\"width\":840,\"height\":410},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.folio3.com\/mobile\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to measure React app performance\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/#website\",\"url\":\"https:\/\/www.folio3.com\/mobile\/\",\"name\":\"Mobile App Development Services\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.folio3.com\/mobile\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/#organization\",\"name\":\"Mobile App Development Services\",\"url\":\"https:\/\/www.folio3.com\/mobile\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2020\/12\/folio3-mobile.png\",\"contentUrl\":\"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2020\/12\/folio3-mobile.png\",\"width\":210,\"height\":50,\"caption\":\"Mobile App Development Services\"},\"image\":{\"@id\":\"https:\/\/www.folio3.com\/mobile\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/#\/schema\/person\/0b6e4f68efbd12d222ac9422766c61eb\",\"name\":\"Noc Folio3\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.folio3.com\/mobile\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/29f05a21b8db20048e7717694b024bbd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/29f05a21b8db20048e7717694b024bbd?s=96&d=mm&r=g\",\"caption\":\"Noc Folio3\"},\"url\":\"https:\/\/www.folio3.com\/mobile\/blog\/author\/noc\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to measure React app performance - Mobile App Development Services","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/","og_locale":"en_US","og_type":"article","og_title":"How to measure React app performance - Mobile App Development Services","og_description":"Performance is the key aspect of high-quality software. While developing any software, one must know how to make it performant enough. In this blog, we will see how we can measure the React app performance through React Profiler.&nbsp; In React app development, we are mostly playing around on components. Components let you split the UI &hellip; Continue reading \"How to measure React app performance\"","og_url":"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/","og_site_name":"Mobile App Development Services","article_published_time":"2021-02-01T11:26:48+00:00","article_modified_time":"2021-02-17T11:24:49+00:00","og_image":[{"width":840,"height":410,"url":"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2021\/02\/dashboard-alt-icon-840x410-1.png","type":"image\/png"}],"author":"Noc Folio3","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Noc Folio3","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/#article","isPartOf":{"@id":"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/"},"author":{"name":"Noc Folio3","@id":"https:\/\/www.folio3.com\/mobile\/#\/schema\/person\/0b6e4f68efbd12d222ac9422766c61eb"},"headline":"How to measure React app performance","datePublished":"2021-02-01T11:26:48+00:00","dateModified":"2021-02-17T11:24:49+00:00","mainEntityOfPage":{"@id":"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/"},"wordCount":641,"commentCount":0,"publisher":{"@id":"https:\/\/www.folio3.com\/mobile\/#organization"},"image":{"@id":"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/#primaryimage"},"thumbnailUrl":"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2021\/02\/dashboard-alt-icon-840x410-1.png","articleSection":["React Native"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/","url":"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/","name":"How to measure React app performance - Mobile App Development Services","isPartOf":{"@id":"https:\/\/www.folio3.com\/mobile\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/#primaryimage"},"image":{"@id":"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/#primaryimage"},"thumbnailUrl":"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2021\/02\/dashboard-alt-icon-840x410-1.png","datePublished":"2021-02-01T11:26:48+00:00","dateModified":"2021-02-17T11:24:49+00:00","breadcrumb":{"@id":"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/#primaryimage","url":"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2021\/02\/dashboard-alt-icon-840x410-1.png","contentUrl":"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2021\/02\/dashboard-alt-icon-840x410-1.png","width":840,"height":410},{"@type":"BreadcrumbList","@id":"https:\/\/www.folio3.com\/mobile\/blog\/how-to-measure-react-app-performance\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.folio3.com\/mobile\/"},{"@type":"ListItem","position":2,"name":"How to measure React app performance"}]},{"@type":"WebSite","@id":"https:\/\/www.folio3.com\/mobile\/#website","url":"https:\/\/www.folio3.com\/mobile\/","name":"Mobile App Development Services","description":"","publisher":{"@id":"https:\/\/www.folio3.com\/mobile\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.folio3.com\/mobile\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.folio3.com\/mobile\/#organization","name":"Mobile App Development Services","url":"https:\/\/www.folio3.com\/mobile\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.folio3.com\/mobile\/#\/schema\/logo\/image\/","url":"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2020\/12\/folio3-mobile.png","contentUrl":"https:\/\/www.folio3.com\/mobile\/wp-content\/uploads\/2020\/12\/folio3-mobile.png","width":210,"height":50,"caption":"Mobile App Development Services"},"image":{"@id":"https:\/\/www.folio3.com\/mobile\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.folio3.com\/mobile\/#\/schema\/person\/0b6e4f68efbd12d222ac9422766c61eb","name":"Noc Folio3","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.folio3.com\/mobile\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/29f05a21b8db20048e7717694b024bbd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/29f05a21b8db20048e7717694b024bbd?s=96&d=mm&r=g","caption":"Noc Folio3"},"url":"https:\/\/www.folio3.com\/mobile\/blog\/author\/noc\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/posts\/5423"}],"collection":[{"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/users\/37"}],"replies":[{"embeddable":true,"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/comments?post=5423"}],"version-history":[{"count":4,"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/posts\/5423\/revisions"}],"predecessor-version":[{"id":5450,"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/posts\/5423\/revisions\/5450"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/media\/5425"}],"wp:attachment":[{"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/media?parent=5423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/categories?post=5423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.folio3.com\/mobile\/wp-json\/wp\/v2\/tags?post=5423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}