{"id":19218,"date":"2022-04-07T13:00:00","date_gmt":"2022-04-07T20:00:00","guid":{"rendered":""},"modified":"2025-06-11T07:50:17","modified_gmt":"2025-06-11T14:50:17","slug":"virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries","status":"publish","type":"post","link":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-apps\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/","title":{"rendered":"React (virtual) and Fluent UI code components using platform libraries"},"content":{"rendered":"<p><strong>React based virtual code\u00a0<\/strong><strong>components are finally here!\u00a0<\/strong><\/p>\n<p>Today we&#8217;re pleased to announce the <strong>Public Preview<\/strong> availability of React based virtual code components. 1st and 3rd party developers now have the ability to make use of <strong>platform provided libraries<\/strong> to build their diverse set of code components. No more React or Fluent library packaging inside individual component bundles. No more mismatched control styles across multiple apps and app types &#8211; model-driven or canvas. No more isolated component React trees. Code components can now use one common set of platform provided React and Fluent UI React libraries.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignleft wp-image-19389\" height=\"622\" src=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/StandardVsVirtualComponent2.png\" title=\"Standard vs React (virtual) code components\" width=\"800\" srcset=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/StandardVsVirtualComponent2.webp 1359w, https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/StandardVsVirtualComponent2-300x233.webp 300w, https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/StandardVsVirtualComponent2-1024x796.webp 1024w, https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/StandardVsVirtualComponent2-768x597.webp 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><br \/>\n<strong>What are React (virtual) code components?\u00a0<\/strong><\/p>\n<p>Power Apps component framework currently only supports\u00a0<strong>s<em>tandard<\/em> <\/strong>code components (standard html control types). Controls are allocated\u00a0 an HtmlDivElement in it&#8217;s <a href=\"https:\/\/docs.microsoft.com\/en-us\/powerapps\/developer\/component-framework\/reference\/control\/init\">init lifecycle method<\/a> and mounts its UX\/UI inside the allocated Div directly working on <a href=\"https:\/\/en.wikipedia.org\/wiki\/Document_Object_Model\">DOM<\/a>\u00a0. On the other hand, React which is an <a href=\"https:\/\/github.com\/facebook\/react\">open-source JavaScript library<\/a> for building front end user interfaces uses a <strong>virtual<\/strong> DOM. React (virtual) controls provide a new pattern optimized for using React library in code components to get the most performance benefits and better align with the React patterns by attaching the control\u2019s React root to the platform React tree. <em>\u00a0With this feature, <strong>virtual code components <\/strong><\/em>can have performance gains which are at par with some of the 1st party controls.<\/p>\n<p><strong>How do I create React (virtual) component?\u00a0<\/strong><\/p>\n<p>We have added a new optional parameter to Power Apps Component (PAC) CLI. A\u00a0new\u00a0<code>--framework<\/code>\u00a0(<code>-fw<\/code>) parameter for the\u00a0<code>pac pcf init<\/code>\u00a0command. If you set the value of this parameter to\u00a0<code>react<\/code>, a simple\u00a0<em>Hello World <\/em>virtual control is created. This control will have control type specified as <em>virtual<\/em> in it&#8217;s control-manifest along with the React and Fluent platform library resource declarations. You can quick try this control locally using test harness <code>npm start<\/code> &#8211; without having to create a solution and add it to Dataverse. Test harness provides runtime libraries for externalized React and Fluent UI libraries, inline with the Power Apps runtime where control will eventually be used.<\/p>\n<figure id=\"attachment_19229\" aria-describedby=\"caption-attachment-19229\" style=\"width: 800px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" alt=\"React Control Sample\" class=\"wp-image-19229\" height=\"580\" src=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/03\/ReactControlSample.gif\" width=\"800\"\/><figcaption id=\"caption-attachment-19229\" class=\"wp-caption-text\">Creating a React (virtual) code component<\/figcaption><\/figure>\n<p><strong>What is Fluent Design System?\u00a0<\/strong><br \/>\n<a href=\"https:\/\/www.microsoft.com\/design\/fluent\/\">Fluent Design System<\/a> is an open-source, cross-platform design system that gives designers and developers the frameworks they need to create engaging product experiences\u2014accessibility, internationalization, and performance included.\u00a0\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/powerapps\/teams\/use-the-fluent-ui-controls\">Fluent UI controls<\/a>\u00a0were first released in Power Apps for Teams and as the default controls for\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/powerapps\/maker\/model-driven-apps\/add-page-to-model-app\">Custom pages<\/a>. Fluent not only helps Power Apps\u00a0 align design across Microsoft products but also provides a strong foundation for Theming and design Infrastructure.<\/p>\n<figure id=\"attachment_19230\" aria-describedby=\"caption-attachment-19230\" style=\"width: 800px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" alt=\"Fluent Design System\" class=\"wp-image-19230\" height=\"579\" src=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/03\/Fluent.gif\" width=\"800\"\/><figcaption id=\"caption-attachment-19230\" class=\"wp-caption-text\">Fluent Design System<\/figcaption><\/figure>\n<p><strong>How do I create a virtual Fluent component?\u00a0<\/strong><\/p>\n<p>Creating a virtual Fluent component is essentially the same way you create a virtual control. New <em>framework parameter<\/em>\u00a0mentioned above adds a shared library resource definition for both Fluent and React to the control&#8217;s manifest.\u00a0 By default the <a href=\"https:\/\/developer.microsoft.com\/en-us\/fluentui#\/get-started\/web#overview\">Fluent UI React<\/a>\u00a0library will be available to control, if it is not needed for a particular project you should remove this node.<\/p>\n<div>\n<figure id=\"attachment_19234\" aria-describedby=\"caption-attachment-19234\" style=\"width: 600px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" alt=\"Platform Libs in component manifest \" class=\"wp-image-19234\" height=\"129\" src=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/03\/PlatformLibsInManifest.png\" width=\"600\" srcset=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/03\/PlatformLibsInManifest.webp 981w, https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/03\/PlatformLibsInManifest-300x65.webp 300w, https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/03\/PlatformLibsInManifest-768x165.webp 768w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><figcaption id=\"caption-attachment-19234\" class=\"wp-caption-text\">Platform Libs in component manifest<\/figcaption><\/figure>\n<\/div>\n<p><strong>Where can I find sample React (virtual) and Fluent UI code components?<\/strong><\/p>\n<p>We are sharing two new virtual control samples which are updated versions of our existing samples. New\u00a0<a href=\"https:\/\/github.com\/microsoft\/PowerApps-Samples\/tree\/master\/component-framework\/ChoicesPickerReactControl\">Choice picker component<\/a>\u00a0and <a href=\"https:\/\/github.com\/microsoft\/PowerApps-Samples\/tree\/master\/component-framework\/FacepileReactControl\">React FacePile component<\/a>\u00a0provide the same functionality but are React (virtual) controls which use platform libraries. You can use these controls as a starter project or for further explorations.<\/p>\n<figure id=\"attachment_19235\" aria-describedby=\"caption-attachment-19235\" style=\"width: 580px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" alt=\"Choice picker component\" class=\"wp-image-19235 size-full\" height=\"820\" src=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/03\/field-component.gif\" width=\"580\"\/><figcaption id=\"caption-attachment-19235\" class=\"wp-caption-text\">Choice picker component<\/figcaption><\/figure>\n<p><strong>Performance considerations\u00a0<\/strong><br \/>\n<span style=\"color: #333333; font-size: 1rem;\">You can expect much better performance across web and mobile, especially on slower networks. Following are some high-level numbers comparing <a href=\"https:\/\/docs.microsoft.com\/en-us\/power-apps\/developer\/component-framework\/sample-controls\/react-facepile-control\">standard<\/a> and <a href=\"https:\/\/github.com\/microsoft\/PowerApps-Samples\/tree\/master\/component-framework\/FacepileReactControl\">virtual<\/a> versions of FacePile control on development machine.<\/span><br \/>\n<img loading=\"lazy\" decoding=\"async\" alt=\"Performance numbers for virtual controls showing 98% smaller bindle size and faster load times \" class=\"alignleft wp-image-19301\" height=\"214\" src=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/PerformanceReactVsStandard.png\" width=\"800\" srcset=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/PerformanceReactVsStandard.webp 1888w, https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/PerformanceReactVsStandard-300x80.webp 300w, https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/PerformanceReactVsStandard-1024x274.webp 1024w, https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/PerformanceReactVsStandard-768x205.webp 768w, https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/PerformanceReactVsStandard-1536x411.webp 1536w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><br \/>\n<strong>Going forward\u00a0<\/strong><\/p>\n<p>At GA, React and Fluent UI will be the recommended and\u00a0default way to create all code components. We recommend starting to evaluating React + Fluent controls for building Power Apps code components. For production use, developers should consider utilizing the s<em>tandard control library packaging<\/em> mechanism during our preview phase.\u00a0 You can see a sample showcasing the pattern\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/powerapps\/developer\/component-framework\/sample-controls\/react-facepile-control\">here<\/a>.\u00a0 Post GA, migrating to virtual controls should be simple as the core client development stack is the same.<\/p>\n<p>You can find more details about this feature in our preview documentation for\u00a0<a href=\"https:\/\/docs.microsoft.com\/power-apps\/developer\/component-framework\/react-controls-platform-libraries\">React controls &amp; platform libraries<\/a>.\u00a0Looking forward to great community adoption and feedback. Please use <a href=\"https:\/\/aka.ms\/PCFForum\">Power Apps Pro Dev forum<\/a>\u00a0for any questions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Virtual components and platform libraries support for code components<\/p>\n","protected":false},"author":171,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ms_queue_id":[],"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","_alt_title":"","ms-ems-related-posts":[],"footnotes":""},"audience":[3378],"content-type":[3424],"job-role":[],"product":[3473],"property":[],"topic":[3421],"coauthors":[2093],"class_list":["post-19218","post","type-post","status-publish","format-standard","hentry","audience-it-professional","content-type-news","product-power-apps","topic-application-modernization"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>React (virtual) and Fluent UI code components using platform libraries - Microsoft Power Platform Blog<\/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.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"React (virtual) and Fluent UI code components using platform libraries - Microsoft Power Platform Blog\" \/>\n<meta property=\"og:description\" content=\"Virtual components and platform libraries support for code components\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-apps\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Power Platform Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-04-07T20:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-11T14:50:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/StandardVsVirtualComponent2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1359\" \/>\n\t<meta property=\"og:image:height\" content=\"1056\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Hemant Gaur\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Hemant Gaur\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/\"},\"author\":[{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/author\/hemantg\/\",\"@type\":\"Person\",\"@name\":\"Hemant Gaur\"}],\"headline\":\"React (virtual) and Fluent UI code components using platform libraries\",\"datePublished\":\"2022-04-07T20:00:00+00:00\",\"dateModified\":\"2025-06-11T14:50:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/\"},\"wordCount\":742,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/StandardVsVirtualComponent2.png\",\"keywords\":[\"Developer\",\"Dynamics 365\",\"Model-Driven Apps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/\",\"name\":\"React (virtual) and Fluent UI code components using platform libraries - Microsoft Power Platform Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/StandardVsVirtualComponent2.png\",\"datePublished\":\"2022-04-07T20:00:00+00:00\",\"dateModified\":\"2025-06-11T14:50:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/#primaryimage\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/StandardVsVirtualComponent2.webp\",\"contentUrl\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/StandardVsVirtualComponent2.webp\",\"width\":1359,\"height\":1056,\"caption\":\"graphical user interface, text, application, chat or text message\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"React (virtual) and Fluent UI code components using platform libraries\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#website\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/\",\"name\":\"Microsoft Power Platform Blog\",\"description\":\"Innovate with Business Apps\",\"publisher\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#organization\",\"name\":\"Microsoft Power Platform Blog\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png\",\"contentUrl\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png\",\"width\":194,\"height\":145,\"caption\":\"Microsoft Power Platform Blog\"},\"image\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#\/schema\/person\/aa4446c7404d02a2f09daeced44308f3\",\"name\":\"Hemant Gaur\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/b4a0c48366837396cdf7f655a0182672a9345d926b238b0546f9c5d5e26be1f1?s=96&d=mm&r=g423d9157f9cf49e189084a592334509a\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b4a0c48366837396cdf7f655a0182672a9345d926b238b0546f9c5d5e26be1f1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b4a0c48366837396cdf7f655a0182672a9345d926b238b0546f9c5d5e26be1f1?s=96&d=mm&r=g\",\"caption\":\"Hemant Gaur\"},\"description\":\"Hemant Gaur is a Principal PM Architect for Power Apps App Agents, driving the strategy for agentic frameworks and human\u2011in\u2011the\u2011loop AI. He previously led the creation of the Power Apps Component Framework and spearheaded modernization across Dynamics 365 and Power Apps using the Fluent V2 design system, along with major cross\u2011group performance improvements.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/pcfpm\/\"],\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/author\/hemantg\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"React (virtual) and Fluent UI code components using platform libraries - Microsoft Power Platform Blog","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.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/","og_locale":"en_US","og_type":"article","og_title":"React (virtual) and Fluent UI code components using platform libraries - Microsoft Power Platform Blog","og_description":"Virtual components and platform libraries support for code components","og_url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-apps\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/","og_site_name":"Microsoft Power Platform Blog","article_published_time":"2022-04-07T20:00:00+00:00","article_modified_time":"2025-06-11T14:50:17+00:00","og_image":[{"width":1359,"height":1056,"url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/StandardVsVirtualComponent2.png","type":"image\/png"}],"author":"Hemant Gaur","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Hemant Gaur","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/#article","isPartOf":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/"},"author":[{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/author\/hemantg\/","@type":"Person","@name":"Hemant Gaur"}],"headline":"React (virtual) and Fluent UI code components using platform libraries","datePublished":"2022-04-07T20:00:00+00:00","dateModified":"2025-06-11T14:50:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/"},"wordCount":742,"commentCount":0,"publisher":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#organization"},"image":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/#primaryimage"},"thumbnailUrl":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/StandardVsVirtualComponent2.png","keywords":["Developer","Dynamics 365","Model-Driven Apps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/","url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/","name":"React (virtual) and Fluent UI code components using platform libraries - Microsoft Power Platform Blog","isPartOf":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/#primaryimage"},"image":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/#primaryimage"},"thumbnailUrl":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/StandardVsVirtualComponent2.png","datePublished":"2022-04-07T20:00:00+00:00","dateModified":"2025-06-11T14:50:17+00:00","breadcrumb":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/#primaryimage","url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/StandardVsVirtualComponent2.webp","contentUrl":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2022\/04\/StandardVsVirtualComponent2.webp","width":1359,"height":1056,"caption":"graphical user interface, text, application, chat or text message"},{"@type":"BreadcrumbList","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/2022\/04\/07\/virtual-code-components-for-power-apps-using-react-and-fluent-ui-react-platform-libraries\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/"},{"@type":"ListItem","position":2,"name":"React (virtual) and Fluent UI code components using platform libraries"}]},{"@type":"WebSite","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#website","url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/","name":"Microsoft Power Platform Blog","description":"Innovate with Business Apps","publisher":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#organization","name":"Microsoft Power Platform Blog","url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png","contentUrl":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png","width":194,"height":145,"caption":"Microsoft Power Platform Blog"},"image":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#\/schema\/person\/aa4446c7404d02a2f09daeced44308f3","name":"Hemant Gaur","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/b4a0c48366837396cdf7f655a0182672a9345d926b238b0546f9c5d5e26be1f1?s=96&d=mm&r=g423d9157f9cf49e189084a592334509a","url":"https:\/\/secure.gravatar.com\/avatar\/b4a0c48366837396cdf7f655a0182672a9345d926b238b0546f9c5d5e26be1f1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b4a0c48366837396cdf7f655a0182672a9345d926b238b0546f9c5d5e26be1f1?s=96&d=mm&r=g","caption":"Hemant Gaur"},"description":"Hemant Gaur is a Principal PM Architect for Power Apps App Agents, driving the strategy for agentic frameworks and human\u2011in\u2011the\u2011loop AI. He previously led the creation of the Power Apps Component Framework and spearheaded modernization across Dynamics 365 and Power Apps using the Fluent V2 design system, along with major cross\u2011group performance improvements.","sameAs":["https:\/\/www.linkedin.com\/in\/pcfpm\/"],"url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/author\/hemantg\/"}]}},"bloginabox_animated_featured_image":null,"bloginabox_display_generated_audio":false,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Power Platform Blog","distributor_original_site_url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/19218","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/users\/171"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/comments?post=19218"}],"version-history":[{"count":1,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/19218\/revisions"}],"predecessor-version":[{"id":130167,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/19218\/revisions\/130167"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/media?parent=19218"}],"wp:term":[{"taxonomy":"audience","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/audience?post=19218"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/content-type?post=19218"},{"taxonomy":"job-role","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/job-role?post=19218"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/product?post=19218"},{"taxonomy":"property","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/property?post=19218"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/topic?post=19218"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/coauthors?post=19218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}