{"id":58493,"date":"2023-05-17T18:13:47","date_gmt":"2023-05-17T12:43:47","guid":{"rendered":"https:\/\/www.oneclickitsolution.com\/blog\/?p=58493"},"modified":"2024-09-06T11:40:23","modified_gmt":"2024-09-06T06:10:23","slug":"react-portals-guide","status":"publish","type":"post","link":"https:\/\/www.oneclickitsolution.com\/blog\/react-portals-guide","title":{"rendered":"React Portals: A Practical Guide for Beginners"},"content":{"rendered":"\n<p>React Portals are a highly effective feature in React that enable you to render components outside the usual React hierarchy. Notably, this functionality maintains the parent-child relationship and the event bubbling mechanism intact. <\/p>\n\n\n\n<p>This can be useful for scenarios where you need to display modals, tooltips, dropdowns, or other UI elements that need to break out of their parent container&#8217;s overflow or z-index constraints.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-are-react-portals\">What are React Portals?<\/h2>\n\n\n\n<p>React Portals are a way of creating a new DOM node and rendering a component into it, instead of rendering it as a child of the nearest parent node in the DOM tree. This means that the component can be rendered anywhere in the DOM, even outside of the root element where your <strong><a href=\"https:\/\/www.oneclickitsolution.com\/services\/react-native-development\/\" target=\"_blank\" rel=\"noreferrer noopener\">React app<\/a><\/strong> is mounted.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.oneclickitsolution.com\/contact-us\/\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"300\" src=\"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2022\/04\/hire-react-native-developers.png\" alt=\"hire-react-native-developers\" class=\"wp-image-54616\" srcset=\"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2022\/04\/hire-react-native-developers.png 1200w, https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2022\/04\/hire-react-native-developers-768x192.png 768w, https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2022\/04\/hire-react-native-developers-20x5.png 20w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/a><\/figure>\n\n\n\n<p>However, this does not mean that the component is detached from the React hierarchy. The component still behaves like a normal React child in every other way, such as receiving props, context, and lifecycle methods from its parent component. It also still participates in the event bubbling mechanism, meaning that any event fired from inside the portal will propagate to its ancestors in the React tree, even if they are not ancestors in the DOM tree.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-do-react-portals-work\">How do React Portals work?<\/h2>\n\n\n\n<p>To create a portal, you use the ReactDOM.createPortal function. It requires two things: a child component and a container element. The child component is any renderable React element, such as an element, string, fragment, or another component. The container element is a DOM node where you want to render the child component.<\/p>\n\n\n\n<p>For example, let&#8217;s say you have the following HTML structure:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"markup\" class=\"language-markup\">&lt;html&gt;\n&lt;body&gt;\n   &lt;div id=\"app-root\"&gt;&lt;\/div&gt;\n   &lt;div id=\"modal-root\"&gt;&lt;\/div&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n\n\n\n<p>And you have a Modal component that you want to render into the modal-root element, instead of the app-root element where your React app is mounted. You can use ReactDOM.createPortal like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"markup\" class=\"language-markup\">import ReactDOM from \"react-dom\";\nfunction Modal(props) {\n\/\/ Create a new div element\nconst el = document.createElement(\"div\");\n\/\/ Append it to the modal-root element\nconst modalRoot = document.getElementById(\"modal-root\");\nmodalRoot.appendChild(el);\n\/\/ Use ReactDOM.createPortal to render the props.children into the new div element\nreturn ReactDOM.createPortal(props.children, el);\n}\nexport default Modal;<\/code><\/pre>\n\n\n\n<p>Now you can use the Modal component anywhere in your React app, and it will be rendered into the modal-root element instead of its parent node.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to use React Portals in an Example?<\/h2>\n\n\n\n<p>To demonstrate how to use React Portals in a real-world scenario, let&#8217;s build a simple app that shows a list of products and allows the user to click on each product to see more details in a modal window.<\/p>\n\n\n\n<p>First, let&#8217;s create a Product component that renders a product name and an image:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"markup\" class=\"language-markup\">import React from \"react\";\nfunction Product(props) {\n   const { name, image } = props;\n   return (\n       &lt;div className=\"product\"&gt;\n           &lt;h3&gt;{name}&lt;\/h3&gt;\n           &lt;img src={image} alt={name} \/&gt;\n       &lt;\/div&gt;\n   );\n}\nexport default Product;<\/code><\/pre>\n\n\n\n<p>Next, let&#8217;s create a ProductList component that renders an array of products using the Product component:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"markup\" class=\"language-markup\">import Product from \".\/Product\";\n\nfunction ProductList(props) {\n   const { products } = props;\nreturn (\n       &lt;div className=\"product-list\"&gt;\n           {products.map((product) =&gt; (\n               &lt;Product key={product.id} {...product} \/&gt;\n           ))}\n       &lt;\/div&gt;\n   );\n}\nexport default ProductList;<\/code><\/pre>\n\n\n\n<p>Then, let&#8217;s create a ProductDetails component that renders more information about a product, such as its description and price:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.oneclickitsolution.com\/contact-us\/\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"300\" src=\"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2022\/01\/react-native-app-development-mistakes-cta.png\" alt=\"react native app development mistakes cta\" class=\"wp-image-54459\" srcset=\"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2022\/01\/react-native-app-development-mistakes-cta.png 1200w, https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2022\/01\/react-native-app-development-mistakes-cta-768x192.png 768w, https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2022\/01\/react-native-app-development-mistakes-cta-20x5.png 20w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/a><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"markup\" class=\"language-markup\">import React from \"react\";\n\nfunction ProductDetails(props) {\n const { name, image, description, price } = props;\nreturn (\n   &lt;div className=\"product-details\"&gt;\n     &lt;h3&gt;{name}&lt;\/h3&gt;\n     &lt;img src={image} alt={name} \/&gt;\n     &lt;p&gt;{description}&lt;\/p&gt;\n     &lt;p&gt;${price}&lt;\/p&gt;\n &lt;\/div&gt;\n );\n}\nexport default ProductDetails;<\/code><\/pre>\n\n\n\n<p>Finally, let&#8217;s <strong><a href=\"https:\/\/www.oneclickitsolution.com\/services\/mobile-app-development\/\" target=\"_blank\" rel=\"noreferrer noopener\">create an <code>App<\/code><\/a><\/strong> component that renders the <code>ProductList<\/code> component and uses the <code>Modal<\/code> component to show the <code>ProductDetails<\/code> component when a product is clicked. We also need to keep track of the selected product and the modal visibility in the state:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"markup\" class=\"language-markup\">import React, { useState } from \"react\";\nimport ProductList from \".\/ProductList\";\nimport Modal from \".\/Modal\";\nimport ProductDetails from \".\/ProductDetails\";\n\/\/ Some mock data for products\nconst products = [\n {\n   id: 1,\n   name: \"iPhone 14\",\n   image: \"https:\/\/example.com\/iphone14.jpg\",\n   description: \"The latest and greatest smartphone from Apple.\",\n   price: 999,\n },\n {\n   id: 2,\n   name: \"MacBook Pro\",\n   image: \"https:\/\/example.com\/macbookpro.jpg\",\n   description: \"The most powerful laptop for professionals.\",\n price: 1999,\n },\n {\n   id: 3,\n   name: \"AirPods Pro\",\n   image: \"https:\/\/example.com\/airpodspro.jpg\",\n   description: \"The best wireless earbuds with noise cancellation.\",\n   price: 249,\n },\n];\nfunction App() {\n \/\/ The state for the selected product\n const [selectedProduct, setSelectedProduct] = useState(null);\n \/\/ The state for the modal visibility\n const [isModalOpen, setIsModalOpen] = useState(false);\n \/\/ The handler for clicking on a product\n const handleProductClick = (product) =&gt; {\n   \/\/ Set the selected product to the clicked product\n   setSelectedProduct(product);\n   \/\/ Open the modal\n   setIsModalOpen(true);\n };\n \/\/ The handler for closing the modal\n const handleModalClose = () =&gt; {\n   \/\/ Set the selected product to null\n   setSelectedProduct(null);\n \/\/ Close the modal\n   setIsModalOpen(false);\n };\n return (\n   &lt;div className=\"app\"&gt;\n     &lt;h1&gt;React Portals Example&lt;\/h1&gt;\n     {\/* Render the product list and pass the click handler as a prop *\/}\n     &lt;ProductList products={products} onProductClick={handleProductClick} \/&gt;\n     {\/* Render the modal if it is open and pass the close handler as a prop *\/}\n     {isModalOpen &amp;&amp; (\n       &lt;Modal onClose={handleModalClose}&gt;\n         {\/* Render the product details inside the modal using the selected product *\/}\n         &lt;ProductDetails {...selectedProduct} \/&gt;\n       &lt;\/Modal&gt;\n     )}\n   &lt;\/div&gt;\n );\n}\nexport default App;<\/code><\/pre>\n\n\n\n<p>And that&#8217;s it! We have successfully used React Portals to render a modal window outside of the normal React hierarchy, while still maintaining the parent-child relationship and the event bubbling mechanism.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>In this blog, we covered the basics of React Portals &#8211; what they are, how they function, and provided a straightforward example to help you understand their practical usage. We saw how React Portals can help us render components outside of their parent container&#8217;s overflow or z-index constraints, such as modals, tooltips, dropdowns, or other <a href=\"https:\/\/www.oneclickitsolution.com\/services\/ui-ux-design-and-development\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>UI elements<\/strong><\/a> that need to break out of their normal position.<\/p>\n\n\n\n<p><strong><a href=\"https:\/\/www.oneclickitsolution.com\/solutions\/cost-to-build-a-react-native-app\/\" target=\"_blank\" rel=\"noreferrer noopener\">React<\/a><\/strong> Portals are a powerful feature that can make your UI more flexible and dynamic. However, they also come with some caveats and challenges, such as managing keyboard focus, accessibility, and performance. Therefore, you should use them wisely and only when necessary.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>React Portals are a highly effective feature in React that enable you to render components outside the usual React hierarchy. Notably, this functionality maintains the parent-child relationship and the event bubbling mechanism intact. This can be useful for scenarios where you need to display modals, tooltips, dropdowns, or other UI elements that need to break &hellip;<\/p>\n","protected":false},"author":1,"featured_media":58539,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[838,784],"tags":[877,855,1349],"class_list":["post-58493","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-solutions","category-web-application","tag-react-native","tag-react-native-app-development","tag-react-portals"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v24.8.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>React Portals: A Practical Guide for Beginners<\/title>\n<meta name=\"description\" content=\"Use React portals to render components outside of the current context, in a different DOM hierarchy &amp; learn how to use portals in react app.\" \/>\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.oneclickitsolution.com\/blog\/react-portals-guide\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"React Portals: A Practical Guide for Beginners\" \/>\n<meta property=\"og:description\" content=\"Use React portals to render components outside of the current context, in a different DOM hierarchy &amp; learn how to use portals in react app.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.oneclickitsolution.com\/blog\/react-portals-guide\" \/>\n<meta property=\"og:site_name\" content=\"OneClick IT Consultancy\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/oneclickconsultancy\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-17T12:43:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-06T06:10:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2023\/05\/react-portals.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"OneClick IT Consultancy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@OneclickIT\" \/>\n<meta name=\"twitter:site\" content=\"@OneclickIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"OneClick IT Consultancy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"React Portals: A Practical Guide for Beginners","description":"Use React portals to render components outside of the current context, in a different DOM hierarchy & learn how to use portals in react app.","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.oneclickitsolution.com\/blog\/react-portals-guide","og_locale":"en_US","og_type":"article","og_title":"React Portals: A Practical Guide for Beginners","og_description":"Use React portals to render components outside of the current context, in a different DOM hierarchy & learn how to use portals in react app.","og_url":"https:\/\/www.oneclickitsolution.com\/blog\/react-portals-guide","og_site_name":"OneClick IT Consultancy","article_publisher":"https:\/\/www.facebook.com\/oneclickconsultancy","article_published_time":"2023-05-17T12:43:47+00:00","article_modified_time":"2024-09-06T06:10:23+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2023\/05\/react-portals.png","type":"image\/png"}],"author":"OneClick IT Consultancy","twitter_card":"summary_large_image","twitter_creator":"@OneclickIT","twitter_site":"@OneclickIT","twitter_misc":{"Written by":"OneClick IT Consultancy","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.oneclickitsolution.com\/blog\/react-portals-guide#article","isPartOf":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/react-portals-guide"},"author":{"name":"OneClick IT Consultancy","@id":"https:\/\/www.oneclickitsolution.com\/blog\/#\/schema\/person\/c2616c0a433427a79a96fe5ca2b34ec3"},"headline":"React Portals: A Practical Guide for Beginners","datePublished":"2023-05-17T12:43:47+00:00","dateModified":"2024-09-06T06:10:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/react-portals-guide"},"wordCount":619,"publisher":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/react-portals-guide#primaryimage"},"thumbnailUrl":"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2023\/05\/react-portals.png","keywords":["React Native","React Native App Development","React Portals"],"articleSection":["Solutions","Web Application"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.oneclickitsolution.com\/blog\/react-portals-guide","url":"https:\/\/www.oneclickitsolution.com\/blog\/react-portals-guide","name":"React Portals: A Practical Guide for Beginners","isPartOf":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/react-portals-guide#primaryimage"},"image":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/react-portals-guide#primaryimage"},"thumbnailUrl":"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2023\/05\/react-portals.png","datePublished":"2023-05-17T12:43:47+00:00","dateModified":"2024-09-06T06:10:23+00:00","description":"Use React portals to render components outside of the current context, in a different DOM hierarchy & learn how to use portals in react app.","breadcrumb":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/react-portals-guide#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.oneclickitsolution.com\/blog\/react-portals-guide"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.oneclickitsolution.com\/blog\/react-portals-guide#primaryimage","url":"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2023\/05\/react-portals.png","contentUrl":"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2023\/05\/react-portals.png","width":1200,"height":628,"caption":"react portals"},{"@type":"BreadcrumbList","@id":"https:\/\/www.oneclickitsolution.com\/blog\/react-portals-guide#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/www.oneclickitsolution.com\/blog\/"},{"@type":"ListItem","position":2,"name":"React Portals: A Practical Guide for Beginners"}]},{"@type":"WebSite","@id":"https:\/\/www.oneclickitsolution.com\/blog\/#website","url":"https:\/\/www.oneclickitsolution.com\/blog\/","name":"OneClick IT Consultancy","description":"We Build Brands from Ideas","publisher":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/#organization"},"alternateName":"OneClick IT Solution","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.oneclickitsolution.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.oneclickitsolution.com\/blog\/#organization","name":"OneClick IT Consultancy","alternateName":"OneClick IT Solution","url":"https:\/\/www.oneclickitsolution.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.oneclickitsolution.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2022\/10\/oneclick-official-logo.png","contentUrl":"https:\/\/www.oneclickitsolution.com\/blog\/wp-content\/uploads\/2022\/10\/oneclick-official-logo.png","width":100,"height":100,"caption":"OneClick IT Consultancy"},"image":{"@id":"https:\/\/www.oneclickitsolution.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/oneclickconsultancy","https:\/\/x.com\/OneclickIT","https:\/\/www.instagram.com\/oneclick.it.consultancy\/","https:\/\/www.linkedin.com\/company\/one-click-it-consultancy\/","https:\/\/www.pinterest.com\/oneclickitconsultancy\/","https:\/\/www.youtube.com\/channel\/UCsEG6aiwOwvYrcZxMoP5xjg","https:\/\/oneclickit.tumblr.com\/","https:\/\/dribbble.com\/oneclickitconsultancy"]},{"@type":"Person","@id":"https:\/\/www.oneclickitsolution.com\/blog\/#\/schema\/person\/c2616c0a433427a79a96fe5ca2b34ec3","name":"OneClick IT Consultancy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.oneclickitsolution.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8169ffe1b63da548d77fb666e94f1aba?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8169ffe1b63da548d77fb666e94f1aba?s=96&d=mm&r=g","caption":"OneClick IT Consultancy"},"description":"OneClick IT Consultancy is the best custom software development company based in India &amp; USA with expertise in BLE, travel, mobile, and web development. With nearly a decade\u2019s experience, we use best practices and development standards to deliver high-performance applications, focused on the user experience.","sameAs":["https:\/\/www.oneclickitsolution.com\/blog\/"],"jobTitle":"Founder","url":"https:\/\/www.oneclickitsolution.com\/blog\/author\/oneclick"}]}},"_links":{"self":[{"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/posts\/58493"}],"collection":[{"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/comments?post=58493"}],"version-history":[{"count":0,"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/posts\/58493\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/media\/58539"}],"wp:attachment":[{"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/media?parent=58493"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/categories?post=58493"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.oneclickitsolution.com\/blog\/wp-json\/wp\/v2\/tags?post=58493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}