{"id":35,"date":"2024-12-15T23:02:14","date_gmt":"2024-12-15T23:02:14","guid":{"rendered":"https:\/\/fullstacknotes.netblocs.com\/?p=35"},"modified":"2024-12-18T09:48:36","modified_gmt":"2024-12-18T09:48:36","slug":"exploring-the-app-js-structure-of-a-large-scale-react-application","status":"publish","type":"post","link":"https:\/\/netblocs.com\/fullstacknotes\/exploring-the-app-js-structure-of-a-large-scale-react-application\/","title":{"rendered":"Exploring the App.js of a Large-Scale React Project"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">React Application Structure and Explanations<\/h3>\n\n\n\n<p>In the following example, you see the App.js file of an advanced, large-scale real e-commerce application.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#232136\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"import React from &quot;react&quot;;\nimport { BrowserRouter } from &quot;react-router-dom&quot;;\nimport { Provider } from &quot;react-redux&quot;;\nimport { PersistGate } from &quot;redux-persist\/integration\/react&quot;;\nimport { UIContextProvider } from &quot;.\/modules\/_context\/UIContext&quot;;\nimport { I18nProvider, useLang } from &quot;_metronic\/i18n&quot;;\nimport { LayoutSplashScreen } from &quot;_metronic\/layout&quot;;\nimport { Routes } from &quot;.\/routes\/Routes&quot;;\nimport moment from &quot;moment&quot;;\nimport 'moment\/locale\/de';\nimport 'moment\/locale\/tr';\n\nexport default function App({ store, persistor, basename }) {\n  \/\/ Change the moment language package\n  const locale = useLang(); \/\/ &quot;de&quot; | &quot;en&quot; | &quot;tr&quot;\n  moment.locale(locale ?? &quot;de&quot;);\n\n  return (\n    \/* Provide Redux store *\/\n    &lt;Provider store={store}&gt;\n      {\/* Asynchronously persist redux stores and show SplashScreen while it's loading. *\/}\n      &lt;PersistGate persistor={persistor} loading=&lt;LayoutSplashScreen \/&gt;&gt;\n        {\/* Override basename (e.g: homepage in package.json) *\/}\n        &lt;BrowserRouter basename={basename}&gt;\n          {\/*This library only returns the location that has been active before the recent location change in the current window lifetime.*\/}\n          {\/* Provide react-intl context synchronized with Redux state. *\/}\n          &lt;I18nProvider&gt;\n            &lt;UIContextProvider&gt;\n              {\/* Render routes with provided Layout. *\/}\n              &lt;Routes \/&gt;\n            &lt;\/UIContextProvider&gt;\n          &lt;\/I18nProvider&gt;\n        &lt;\/BrowserRouter&gt;\n      &lt;\/PersistGate&gt;\n    &lt;\/Provider&gt;\n  );\n}\" style=\"color:#e0def4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #E0DEF4; font-style: italic\">React<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;react&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #E0DEF4; font-style: italic\">BrowserRouter<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;react-router-dom&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #E0DEF4; font-style: italic\">Provider<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;react-redux&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #E0DEF4; font-style: italic\">PersistGate<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;redux-persist\/integration\/react&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #E0DEF4; font-style: italic\">UIContextProvider<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;.\/modules\/_context\/UIContext&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #E0DEF4; font-style: italic\">I18nProvider<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #E0DEF4; font-style: italic\">useLang<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;_metronic\/i18n&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #E0DEF4; font-style: italic\">LayoutSplashScreen<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;_metronic\/layout&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #E0DEF4; font-style: italic\">Routes<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;.\/routes\/Routes&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #E0DEF4; font-style: italic\">moment<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;moment&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #F6C177\">&#39;moment\/locale\/de&#39;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #F6C177\">&#39;moment\/locale\/tr&#39;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">export default function <\/span><span style=\"color: #EA9A97\">App<\/span><span style=\"color: #908CAA\">({<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #C4A7E7; font-style: italic\">store<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #C4A7E7; font-style: italic\">persistor<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #C4A7E7; font-style: italic\">basename<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">})<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #908CAA\">  <\/span><span style=\"color: #908CAA; font-style: italic\">\/\/<\/span><span style=\"color: #6E6A86; font-style: italic\"> Change the moment language package<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">  const <\/span><span style=\"color: #E0DEF4; font-style: italic\">locale<\/span><span style=\"color: #3E8FB0\"> = <\/span><span style=\"color: #EA9A97\">useLang<\/span><span style=\"color: #E0DEF4\">()<\/span><span style=\"color: #908CAA\">;<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA; font-style: italic\">\/\/<\/span><span style=\"color: #6E6A86; font-style: italic\"> &quot;de&quot; | &quot;en&quot; | &quot;tr&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">  <\/span><span style=\"color: #E0DEF4; font-style: italic\">moment<\/span><span style=\"color: #3E8FB0\">.<\/span><span style=\"color: #EA9A97\">locale<\/span><span style=\"color: #E0DEF4\">(<\/span><span style=\"color: #E0DEF4; font-style: italic\">locale<\/span><span style=\"color: #3E8FB0\"> ?? <\/span><span style=\"color: #F6C177\">&quot;de&quot;<\/span><span style=\"color: #E0DEF4\">)<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">  return <\/span><span style=\"color: #E0DEF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">    <\/span><span style=\"color: #908CAA; font-style: italic\">\/*<\/span><span style=\"color: #6E6A86; font-style: italic\"> Provide Redux store <\/span><span style=\"color: #908CAA; font-style: italic\">*\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">    <\/span><span style=\"color: #6E6A86\">&lt;<\/span><span style=\"color: #9CCFD8\">Provider<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #C4A7E7; font-style: italic\">store<\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #E0DEF4; font-style: italic\">store<\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #6E6A86\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #908CAA; font-style: italic\">\/*<\/span><span style=\"color: #6E6A86; font-style: italic\"> Asynchronously persist redux stores and show SplashScreen while it&#39;s loading. <\/span><span style=\"color: #908CAA; font-style: italic\">*\/<\/span><span style=\"color: #908CAA\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      <\/span><span style=\"color: #6E6A86\">&lt;<\/span><span style=\"color: #9CCFD8\">PersistGate<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #C4A7E7; font-style: italic\">persistor<\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #E0DEF4; font-style: italic\">persistor<\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #C4A7E7; font-style: italic\">loading<\/span><span style=\"color: #EB6F92\">=&lt;LayoutSplashScreen<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #6E6A86\">\/&gt;<\/span><span style=\"color: #E0DEF4\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #908CAA; font-style: italic\">\/*<\/span><span style=\"color: #6E6A86; font-style: italic\"> Override basename (e.g: homepage in package.json) <\/span><span style=\"color: #908CAA; font-style: italic\">*\/<\/span><span style=\"color: #908CAA\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #6E6A86\">&lt;<\/span><span style=\"color: #9CCFD8\">BrowserRouter<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #C4A7E7; font-style: italic\">basename<\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #E0DEF4; font-style: italic\">basename<\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #6E6A86\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">          <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #908CAA; font-style: italic\">\/*<\/span><span style=\"color: #6E6A86; font-style: italic\">This library only returns the location that has been active before the recent location change in the current window lifetime.<\/span><span style=\"color: #908CAA; font-style: italic\">*\/<\/span><span style=\"color: #908CAA\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">          <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #908CAA; font-style: italic\">\/*<\/span><span style=\"color: #6E6A86; font-style: italic\"> Provide react-intl context synchronized with Redux state. <\/span><span style=\"color: #908CAA; font-style: italic\">*\/<\/span><span style=\"color: #908CAA\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">          <\/span><span style=\"color: #6E6A86\">&lt;<\/span><span style=\"color: #9CCFD8\">I18nProvider<\/span><span style=\"color: #6E6A86\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #6E6A86\">&lt;<\/span><span style=\"color: #9CCFD8\">UIContextProvider<\/span><span style=\"color: #6E6A86\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">              <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #908CAA; font-style: italic\">\/*<\/span><span style=\"color: #6E6A86; font-style: italic\"> Render routes with provided Layout. <\/span><span style=\"color: #908CAA; font-style: italic\">*\/<\/span><span style=\"color: #908CAA\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">              <\/span><span style=\"color: #6E6A86\">&lt;<\/span><span style=\"color: #9CCFD8\">Routes<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #6E6A86\">\/&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #6E6A86\">&lt;\/<\/span><span style=\"color: #9CCFD8\">UIContextProvider<\/span><span style=\"color: #6E6A86\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">          <\/span><span style=\"color: #6E6A86\">&lt;\/<\/span><span style=\"color: #9CCFD8\">I18nProvider<\/span><span style=\"color: #6E6A86\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #6E6A86\">&lt;\/<\/span><span style=\"color: #9CCFD8\">BrowserRouter<\/span><span style=\"color: #6E6A86\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">      <\/span><span style=\"color: #6E6A86\">&lt;\/<\/span><span style=\"color: #9CCFD8\">PersistGate<\/span><span style=\"color: #6E6A86\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">    &lt;\/<\/span><span style=\"color: #E0DEF4; font-style: italic\">Provider<\/span><span style=\"color: #3E8FB0\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">  <\/span><span style=\"color: #E0DEF4\">)<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #908CAA\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Understanding the structure of this file can facilitate learning by providing insight into what the overall structure of a large project in React looks like.<\/p>\n\n\n\n<p>This React component forms the core structure of an application and integrates many important libraries. Now let&#8217;s explain the code step by step:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">1. Imports<\/h4>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#232136\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"import React from &quot;react&quot;;\nimport { BrowserRouter } from &quot;react-router-dom&quot;;\nimport { Provider } from &quot;react-redux&quot;;\nimport { PersistGate } from &quot;redux-persist\/integration\/react&quot;;\nimport { UIContextProvider } from &quot;.\/modules\/_context\/UIContext&quot;;\nimport { I18nProvider, useLang } from &quot;_metronic\/i18n&quot;;\nimport { LayoutSplashScreen } from &quot;_metronic\/layout&quot;;\nimport { Routes } from &quot;.\/routes\/Routes&quot;;\nimport moment from &quot;moment&quot;;\nimport 'moment\/locale\/de';\nimport 'moment\/locale\/tr';\" style=\"color:#e0def4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #E0DEF4; font-style: italic\">React<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;react&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #E0DEF4; font-style: italic\">BrowserRouter<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;react-router-dom&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #E0DEF4; font-style: italic\">Provider<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;react-redux&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #E0DEF4; font-style: italic\">PersistGate<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;redux-persist\/integration\/react&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #E0DEF4; font-style: italic\">UIContextProvider<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;.\/modules\/_context\/UIContext&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #E0DEF4; font-style: italic\">I18nProvider<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #E0DEF4; font-style: italic\">useLang<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;_metronic\/i18n&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #E0DEF4; font-style: italic\">LayoutSplashScreen<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;_metronic\/layout&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #E0DEF4; font-style: italic\">Routes<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;.\/routes\/Routes&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #E0DEF4; font-style: italic\">moment<\/span><span style=\"color: #3E8FB0\"> from <\/span><span style=\"color: #F6C177\">&quot;moment&quot;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #F6C177\">&#39;moment\/locale\/de&#39;<\/span><span style=\"color: #908CAA\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #3E8FB0\">import <\/span><span style=\"color: #F6C177\">&#39;moment\/locale\/tr&#39;<\/span><span style=\"color: #908CAA\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>React:<\/strong>&nbsp;Necessary to use the React library.<\/li>\n\n\n\n<li><strong>react-router-dom:<\/strong>&nbsp;Used to manage routing operations in the application.<\/li>\n\n\n\n<li><strong>react-redux:<\/strong>&nbsp;Used to provide Redux state management.<\/li>\n\n\n\n<li><strong>redux-persist:<\/strong>&nbsp;Used to save Redux state to persistent storage like local storage.<\/li>\n\n\n\n<li><strong>UIContextProvider:<\/strong>&nbsp;A custom context provider that provides the in-app UI state.<\/li>\n\n\n\n<li><strong>I18nProvider:<\/strong>&nbsp;Used for the application&#8217;s internationalization (i18n) support.<\/li>\n\n\n\n<li><strong>LayoutSplashScreen:<\/strong>&nbsp;A loading screen shown while the application is loading.<\/li>\n\n\n\n<li><strong>Routes:<\/strong>&nbsp;Contains the routes defined for the application&#8217;s routing.<\/li>\n\n\n\n<li><strong>moment:<\/strong>&nbsp;A library used for date and time operations. German and Turkish language packs have also been imported.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">2. App Component<\/h4>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#232136\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"export default function App({ store, persistor, basename }) {\n    \/\/ App: This is the main component of the application and receives the Redux store, persistor object, and basename value as props.\n}\" style=\"color:#e0def4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #3E8FB0\">export default function <\/span><span style=\"color: #EA9A97\">App<\/span><span style=\"color: #908CAA\">({<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #C4A7E7; font-style: italic\">store<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #C4A7E7; font-style: italic\">persistor<\/span><span style=\"color: #908CAA\">,<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #C4A7E7; font-style: italic\">basename<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">})<\/span><span style=\"color: #3E8FB0\"> <\/span><span style=\"color: #908CAA\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #908CAA\">    <\/span><span style=\"color: #908CAA; font-style: italic\">\/\/<\/span><span style=\"color: #6E6A86; font-style: italic\"> App: This is the main component of the application and receives the Redux store, persistor object, and basename value as props.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #908CAA\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">3. Language Setting<\/h4>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#232136\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"const locale = useLang(); \/\/ &quot;de&quot; | &quot;en&quot; | &quot;tr&quot;\nmoment.locale(locale ?? &quot;de&quot;);\" style=\"color:#e0def4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #3E8FB0\">const<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #E0DEF4; font-style: italic\">locale<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #EA9A97\">useLang<\/span><span style=\"color: #E0DEF4\">()<\/span><span style=\"color: #908CAA\">;<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #908CAA; font-style: italic\">\/\/<\/span><span style=\"color: #6E6A86; font-style: italic\"> &quot;de&quot; | &quot;en&quot; | &quot;tr&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4; font-style: italic\">moment<\/span><span style=\"color: #3E8FB0\">.<\/span><span style=\"color: #EA9A97\">locale<\/span><span style=\"color: #E0DEF4\">(<\/span><span style=\"color: #E0DEF4; font-style: italic\">locale<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #3E8FB0\">??<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #F6C177\">&quot;de&quot;<\/span><span style=\"color: #E0DEF4\">)<\/span><span style=\"color: #908CAA\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>useLang():<\/strong>&nbsp;A hook that returns the current language of the application. If no language is available, it defaults to German (&#8220;de&#8221;).<\/li>\n\n\n\n<li><strong>moment.locale():<\/strong>&nbsp;Changes the language setting of the moment library. Thus, date formats are updated according to the language setting.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">4. JSX Structure<\/h4>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#232136\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"return (\n    &lt;Provider store={store}&gt;\n        &lt;PersistGate persistor={persistor} loading=&lt;LayoutSplashScreen \/&gt;&gt;\n            &lt;BrowserRouter basename={basename}&gt;\n                &lt;I18nProvider&gt;\n                    &lt;UIContextProvider&gt;\n                        &lt;Routes \/&gt;\n                    &lt;\/UIContextProvider&gt;\n                &lt;\/I18nProvider&gt;\n            &lt;\/BrowserRouter&gt;\n        &lt;\/PersistGate&gt;\n    &lt;\/Provider&gt;\n);\" style=\"color:#e0def4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki rose-pine-moon\" style=\"background-color: #232136\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #3E8FB0\">return<\/span><span style=\"color: #E0DEF4\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #6E6A86\">&lt;<\/span><span style=\"color: #9CCFD8\">Provider<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #C4A7E7; font-style: italic\">store<\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #E0DEF4; font-style: italic\">store<\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #6E6A86\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #6E6A86\">&lt;<\/span><span style=\"color: #9CCFD8\">PersistGate<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #C4A7E7; font-style: italic\">persistor<\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #E0DEF4; font-style: italic\">persistor<\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #C4A7E7; font-style: italic\">loading<\/span><span style=\"color: #EB6F92\">=&lt;LayoutSplashScreen<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #6E6A86\">\/&gt;<\/span><span style=\"color: #E0DEF4\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #6E6A86\">&lt;<\/span><span style=\"color: #9CCFD8\">BrowserRouter<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #C4A7E7; font-style: italic\">basename<\/span><span style=\"color: #3E8FB0\">=<\/span><span style=\"color: #908CAA\">{<\/span><span style=\"color: #E0DEF4; font-style: italic\">basename<\/span><span style=\"color: #908CAA\">}<\/span><span style=\"color: #6E6A86\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                <\/span><span style=\"color: #6E6A86\">&lt;<\/span><span style=\"color: #9CCFD8\">I18nProvider<\/span><span style=\"color: #6E6A86\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                    <\/span><span style=\"color: #6E6A86\">&lt;<\/span><span style=\"color: #9CCFD8\">UIContextProvider<\/span><span style=\"color: #6E6A86\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                        <\/span><span style=\"color: #6E6A86\">&lt;<\/span><span style=\"color: #9CCFD8\">Routes<\/span><span style=\"color: #E0DEF4\"> <\/span><span style=\"color: #6E6A86\">\/&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                    <\/span><span style=\"color: #6E6A86\">&lt;\/<\/span><span style=\"color: #9CCFD8\">UIContextProvider<\/span><span style=\"color: #6E6A86\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">                <\/span><span style=\"color: #6E6A86\">&lt;\/<\/span><span style=\"color: #9CCFD8\">I18nProvider<\/span><span style=\"color: #6E6A86\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">            <\/span><span style=\"color: #6E6A86\">&lt;\/<\/span><span style=\"color: #9CCFD8\">BrowserRouter<\/span><span style=\"color: #6E6A86\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">        <\/span><span style=\"color: #6E6A86\">&lt;\/<\/span><span style=\"color: #9CCFD8\">PersistGate<\/span><span style=\"color: #6E6A86\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">    <\/span><span style=\"color: #3E8FB0\">&lt;\/<\/span><span style=\"color: #E0DEF4; font-style: italic\">Provider<\/span><span style=\"color: #3E8FB0\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E0DEF4\">)<\/span><span style=\"color: #908CAA\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Provider:<\/strong>&nbsp;Provides the Redux store to all components of the application.<\/li>\n\n\n\n<li><strong>PersistGate:<\/strong>&nbsp;Shows a loading state (splash screen) while saving the Redux state to local storage.<\/li>\n\n\n\n<li><strong>BrowserRouter:<\/strong>&nbsp;Manages the application&#8217;s routing using React Router. The basename prop adds a base path to the URL structure.<\/li>\n\n\n\n<li><strong>I18nProvider:<\/strong>&nbsp;Provides support for the application&#8217;s internationalization.<\/li>\n\n\n\n<li><strong>UIContextProvider:<\/strong>&nbsp;A special context that provides the user interface state.<\/li>\n\n\n\n<li><strong>Routes:<\/strong>&nbsp;Contains the routing structures of the application and renders the routes defined here.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Summary<\/h3>\n\n\n\n<p>This component forms the foundation of a React application, providing important functionalities such as state management, routing, internationalization, and user interface management all in one place. By using this structure, you can display content in various languages in your application, manage the user interface, and persist state effectively.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>React Application Structure and Explanations In the following example, you see the App.js file of an advanced, large-scale real e-commerce application. Understanding the structure of this file can facilitate learning&hellip;<\/p>\n","protected":false},"author":1,"featured_media":37,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[24,14],"class_list":["post-35","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-react","tag-app","tag-react"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/netblocs.com\/fullstacknotes\/wp-json\/wp\/v2\/posts\/35","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/netblocs.com\/fullstacknotes\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netblocs.com\/fullstacknotes\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netblocs.com\/fullstacknotes\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netblocs.com\/fullstacknotes\/wp-json\/wp\/v2\/comments?post=35"}],"version-history":[{"count":4,"href":"https:\/\/netblocs.com\/fullstacknotes\/wp-json\/wp\/v2\/posts\/35\/revisions"}],"predecessor-version":[{"id":98,"href":"https:\/\/netblocs.com\/fullstacknotes\/wp-json\/wp\/v2\/posts\/35\/revisions\/98"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/netblocs.com\/fullstacknotes\/wp-json\/wp\/v2\/media\/37"}],"wp:attachment":[{"href":"https:\/\/netblocs.com\/fullstacknotes\/wp-json\/wp\/v2\/media?parent=35"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netblocs.com\/fullstacknotes\/wp-json\/wp\/v2\/categories?post=35"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netblocs.com\/fullstacknotes\/wp-json\/wp\/v2\/tags?post=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}