{"id":671,"date":"2025-05-18T19:02:39","date_gmt":"2025-05-18T19:02:39","guid":{"rendered":"https:\/\/buhave.com\/courses\/?p=671"},"modified":"2025-05-20T12:57:52","modified_gmt":"2025-05-20T12:57:52","slug":"advanced-concepts","status":"publish","type":"post","link":"https:\/\/buhave.com\/courses\/react\/advanced-concepts\/","title":{"rendered":"Advanced Concepts"},"content":{"rendered":"<h2>Code splitting with React.lazy and Suspense<\/h2>\n<p>Code splitting is a performance optimization technique that breaks your React application into smaller bundles, loading only the code needed for the current view. This improves initial load times and overall app responsiveness.<\/p>\n<h3>What Is React.lazy<\/h3>\n<p><code>React.lazy<\/code> is a built-in React function that enables dynamic import of components. It allows you to load components lazily when they are rendered, rather than including them in the main bundle.<\/p>\n<h3>What Is Suspense<\/h3>\n<p><code>Suspense<\/code> is a React component that lets you specify a fallback UI (like a loading spinner) to display while a lazy-loaded component is being fetched and rendered.<\/p>\n<p><strong>How It Works<\/strong><\/p>\n<ul>\n<li>Wrap the lazy-loaded component using <code>React.lazy(() =&gt; import('.\/Component'))<\/code><\/li>\n<li>Use <code>&lt;Suspense fallback={...}&gt;<\/code> to wrap the lazy component in your JSX<\/li>\n<li>The fallback UI renders while the lazy component is loading<\/li>\n<\/ul>\n<p><strong>Benefits of Code Splitting<\/strong><\/p>\n<ul>\n<li>Reduces the size of the initial JavaScript bundle<\/li>\n<li>Speeds up page load and improves perceived performance<\/li>\n<li>Delays loading of non-critical components until needed<\/li>\n<li>Improves user experience, especially on slower networks<\/li>\n<\/ul>\n<p><strong>Best Practices<\/strong><\/p>\n<ul>\n<li>Use code splitting for large components or routes<\/li>\n<li>Combine with React Router to lazily load pages<\/li>\n<li>Provide meaningful fallback UI to maintain engagement<\/li>\n<li>Test loading states to avoid blank screens or jank<\/li>\n<\/ul>\n<p>Using React.lazy and Suspense allows React developers to efficiently implement code splitting and enhance application performance with minimal setup.<\/p>\n<h2>Error boundaries<\/h2>\n<p>Error boundaries are React components that catch JavaScript errors anywhere in their child component tree, log those errors, and display a fallback UI instead of crashing the entire app.<\/p>\n<h3>Purpose of Error Boundaries<\/h3>\n<p>They help improve the user experience by preventing the whole app from unmounting when a component throws an error, allowing graceful error handling and recovery.<\/p>\n<p><strong>How Error Boundaries Work<\/strong><\/p>\n<ul>\n<li>Implemented as class components that define <code>componentDidCatch(error, info)<\/code> lifecycle method<\/li>\n<li>Also implement <code>static getDerivedStateFromError(error)<\/code> to update state and render fallback UI<\/li>\n<li>Catch errors during rendering, lifecycle methods, and constructors of child components<\/li>\n<\/ul>\n<p><strong>Limitations<\/strong><\/p>\n<ul>\n<li>Do not catch errors inside event handlers<\/li>\n<li>Do not catch errors in asynchronous code, server-side rendering, or errors thrown in error boundary itself<\/li>\n<\/ul>\n<p><strong>Typical Usage<\/strong><\/p>\n<ul>\n<li>Wrap error-prone components or routes with an error boundary<\/li>\n<li>Show fallback UI to inform users and offer retry options<\/li>\n<li>Log errors to monitoring services for debugging<\/li>\n<\/ul>\n<p><strong>Benefits<\/strong><\/p>\n<ul>\n<li>Improves app stability and user experience<\/li>\n<li>Prevents complete app crashes due to component errors<\/li>\n<li>Provides centralized error handling for parts of the UI<\/li>\n<\/ul>\n<p>Error boundaries are essential for building resilient React applications by handling unexpected runtime errors gracefully without breaking the entire interface.<\/p>\n<h2>Portals and Modals<\/h2>\n<p>Portals in React provide a way to render components outside of the main DOM hierarchy, which is particularly useful for UI elements like modals, tooltips, and dropdowns that require separate layering from their parent components.<\/p>\n<h3>What Are Portals<\/h3>\n<p>React Portals allow you to render children into a DOM node that exists outside the root component\u2019s hierarchy. This is done using the <code>ReactDOM.createPortal<\/code> method, which takes two arguments: the JSX to render and the target DOM node.<\/p>\n<p><strong>Why Use Portals<\/strong><\/p>\n<ul>\n<li>Prevent styling and z-index issues by placing content outside parent containers<\/li>\n<li>Maintain proper positioning and behavior for overlays or popups<\/li>\n<li>Improve accessibility by avoiding nesting issues<\/li>\n<\/ul>\n<h3>Modals in React<\/h3>\n<p>Modals are popup components used to display content or prompt users without navigating away from the current page. They are commonly implemented using portals to ensure they render above all other elements.<\/p>\n<p><strong>Typical Modal Behavior<\/strong><\/p>\n<ul>\n<li>Appears centered on the screen with a backdrop<\/li>\n<li>Blocks interaction with the underlying UI<\/li>\n<li>Closes when clicking outside or pressing Escape<\/li>\n<\/ul>\n<p><strong>Best Practices<\/strong><\/p>\n<ul>\n<li>Use portals to keep modals outside the app root for proper layering<\/li>\n<li>Manage modal visibility with state<\/li>\n<li>Handle accessibility with focus trapping and keyboard support<\/li>\n<li>Reuse modal components to maintain consistency<\/li>\n<\/ul>\n<p>Portals are a powerful feature in React for rendering components like modals that need to break out of the usual parent-child DOM structure while maintaining seamless functionality and styling control.<\/p>\n<h2>Refs and use Imperative Handle<\/h2>\n<p>Refs and the <code>useImperativeHandle<\/code> hook in React are used to access and customize the behavior of child components from a parent component. They allow direct manipulation of DOM nodes or component instances, typically for advanced use cases.<\/p>\n<h3>What Are Refs<\/h3>\n<p>Refs (short for references) provide a way to access DOM elements or React components directly. You create refs using the <code>useRef<\/code> hook or <code>React.createRef<\/code> in class components. They are often used for focusing inputs, controlling animations, or integrating with third-party libraries.<\/p>\n<p><strong>When to Use Refs<\/strong><\/p>\n<ul>\n<li>Managing focus or text selection in input fields<\/li>\n<li>Triggering imperative animations<\/li>\n<li>Reading or modifying DOM elements directly<\/li>\n<li>Accessing child component methods<\/li>\n<\/ul>\n<h3>What Is Use Imperative Handle<\/h3>\n<p><code>useImperativeHandle<\/code> is a React Hook used with <code>forwardRef<\/code> to customize the values and functions exposed to parent components when a ref is attached to a child component. It enables the child to control exactly what the parent can access through the ref.<\/p>\n<p><strong>Typical Use Case<\/strong><\/p>\n<ul>\n<li>Expose specific functions (like <code>focus<\/code> or <code>reset<\/code>) from a custom input component to a parent<\/li>\n<li>Encapsulate internal logic while still giving limited external access<\/li>\n<\/ul>\n<p><strong>How It Works<\/strong><\/p>\n<ul>\n<li>Wrap the child component with <code>forwardRef<\/code><\/li>\n<li>Inside the child, use <code>useImperativeHandle(ref, () =&gt; ({ ... }))<\/code><\/li>\n<li>Return an object that defines the instance values or methods you want to expose<\/li>\n<\/ul>\n<p><strong>Best Practices<\/strong><\/p>\n<ul>\n<li>Use refs and <code>useImperativeHandle<\/code> sparingly and only when necessary<\/li>\n<li>Prefer declarative code over imperative logic whenever possible<\/li>\n<li>Keep the exposed API small and focused to maintain component encapsulation<\/li>\n<\/ul>\n<p>Refs and <code>useImperativeHandle<\/code> provide a way to handle advanced component interactions and control, especially when working with reusable components that require limited imperative access from parent components.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Code splitting with React.lazy and Suspense Code splitting is a performance optimization technique that breaks your React application into smaller bundles, loading only the code needed for the current view. This improves initial load times and overall app responsiveness. What Is React.lazy React.lazy is a<\/p>\n","protected":false},"author":1,"featured_media":672,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-671","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-react"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Advanced Concepts - React Course<\/title>\n<meta name=\"description\" content=\"Advanced concepts in React enhance performance, reusability, and scalability through patterns like context, refs, and code splitting.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/buhave.com\/courses\/react\/advanced-concepts\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Advanced Concepts - React Course\" \/>\n<meta property=\"og:description\" content=\"Advanced concepts in React enhance performance, reusability, and scalability through patterns like context, refs, and code splitting.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/buhave.com\/courses\/react\/advanced-concepts\/\" \/>\n<meta property=\"og:site_name\" content=\"BUHAVE\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/BeYouHave\/\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/naveedsafdarawan\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-18T19:02:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-20T12:57:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/buhave.com\/courses\/wp-content\/uploads\/2025\/05\/Advanced-Concepts.webp\" \/>\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\/webp\" \/>\n<meta name=\"author\" content=\"Naveed Safdar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Naveed Safdar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/advanced-concepts\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/advanced-concepts\\\/\"},\"author\":{\"name\":\"Naveed Safdar\",\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/#\\\/schema\\\/person\\\/04fe0254e118521c9fbb3da39de5acca\"},\"headline\":\"Advanced Concepts\",\"datePublished\":\"2025-05-18T19:02:39+00:00\",\"dateModified\":\"2025-05-20T12:57:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/advanced-concepts\\\/\"},\"wordCount\":897,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/advanced-concepts\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/buhave.com\\\/courses\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Advanced-Concepts.webp\",\"articleSection\":[\"React Course\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/advanced-concepts\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/advanced-concepts\\\/\",\"url\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/advanced-concepts\\\/\",\"name\":\"Advanced Concepts - React Course\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/advanced-concepts\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/advanced-concepts\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/buhave.com\\\/courses\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Advanced-Concepts.webp\",\"datePublished\":\"2025-05-18T19:02:39+00:00\",\"dateModified\":\"2025-05-20T12:57:52+00:00\",\"description\":\"Advanced concepts in React enhance performance, reusability, and scalability through patterns like context, refs, and code splitting.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/advanced-concepts\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/advanced-concepts\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/advanced-concepts\\\/#primaryimage\",\"url\":\"https:\\\/\\\/buhave.com\\\/courses\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Advanced-Concepts.webp\",\"contentUrl\":\"https:\\\/\\\/buhave.com\\\/courses\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Advanced-Concepts.webp\",\"width\":1200,\"height\":628,\"caption\":\"Advanced Concepts\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/advanced-concepts\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Courses\",\"item\":\"https:\\\/\\\/buhave.com\\\/courses\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"React Course\",\"item\":\"https:\\\/\\\/buhave.com\\\/courses\\\/learn\\\/react\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Advanced Concepts\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/#website\",\"url\":\"https:\\\/\\\/buhave.com\\\/courses\\\/\",\"name\":\"BUHAVE\",\"description\":\"Courses - Learn Online for Free\",\"publisher\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/buhave.com\\\/courses\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/#organization\",\"name\":\"BUHAVE\",\"url\":\"https:\\\/\\\/buhave.com\\\/courses\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/buhave.com\\\/courses\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/buhave-course.webp\",\"contentUrl\":\"https:\\\/\\\/buhave.com\\\/courses\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/buhave-course.webp\",\"width\":375,\"height\":75,\"caption\":\"BUHAVE\"},\"image\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/BeYouHave\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/buhave\",\"https:\\\/\\\/www.youtube.com\\\/@buhave\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/#\\\/schema\\\/person\\\/04fe0254e118521c9fbb3da39de5acca\",\"name\":\"Naveed Safdar\",\"description\":\"I\u2019m Naveed Safdar - SEO Manager with over 10 years of experience in SEO and Digital Marketing. I\u2019ve had the privilege of working with leading national and international companies including Grafdom, PakWheels, Systems Limited, Confiz, Educative, and Dubizzle Labs. My expertise spans technical SEO, content strategy, organic growth, and performance analytics - helping businesses improve visibility, traffic, and ROI.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/naveedsafdar\\\/\",\"https:\\\/\\\/www.facebook.com\\\/naveedsafdarawan\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@naveedsafdar\"],\"url\":\"https:\\\/\\\/buhave.com\\\/courses\\\/author\\\/naveed-safdar\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Advanced Concepts - React Course","description":"Advanced concepts in React enhance performance, reusability, and scalability through patterns like context, refs, and code splitting.","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:\/\/buhave.com\/courses\/react\/advanced-concepts\/","og_locale":"en_US","og_type":"article","og_title":"Advanced Concepts - React Course","og_description":"Advanced concepts in React enhance performance, reusability, and scalability through patterns like context, refs, and code splitting.","og_url":"https:\/\/buhave.com\/courses\/react\/advanced-concepts\/","og_site_name":"BUHAVE","article_publisher":"https:\/\/www.facebook.com\/BeYouHave\/","article_author":"https:\/\/www.facebook.com\/naveedsafdarawan\/","article_published_time":"2025-05-18T19:02:39+00:00","article_modified_time":"2025-05-20T12:57:52+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/buhave.com\/courses\/wp-content\/uploads\/2025\/05\/Advanced-Concepts.webp","type":"image\/webp"}],"author":"Naveed Safdar","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Naveed Safdar","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/buhave.com\/courses\/react\/advanced-concepts\/#article","isPartOf":{"@id":"https:\/\/buhave.com\/courses\/react\/advanced-concepts\/"},"author":{"name":"Naveed Safdar","@id":"https:\/\/buhave.com\/courses\/#\/schema\/person\/04fe0254e118521c9fbb3da39de5acca"},"headline":"Advanced Concepts","datePublished":"2025-05-18T19:02:39+00:00","dateModified":"2025-05-20T12:57:52+00:00","mainEntityOfPage":{"@id":"https:\/\/buhave.com\/courses\/react\/advanced-concepts\/"},"wordCount":897,"commentCount":0,"publisher":{"@id":"https:\/\/buhave.com\/courses\/#organization"},"image":{"@id":"https:\/\/buhave.com\/courses\/react\/advanced-concepts\/#primaryimage"},"thumbnailUrl":"https:\/\/buhave.com\/courses\/wp-content\/uploads\/2025\/05\/Advanced-Concepts.webp","articleSection":["React Course"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/buhave.com\/courses\/react\/advanced-concepts\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/buhave.com\/courses\/react\/advanced-concepts\/","url":"https:\/\/buhave.com\/courses\/react\/advanced-concepts\/","name":"Advanced Concepts - React Course","isPartOf":{"@id":"https:\/\/buhave.com\/courses\/#website"},"primaryImageOfPage":{"@id":"https:\/\/buhave.com\/courses\/react\/advanced-concepts\/#primaryimage"},"image":{"@id":"https:\/\/buhave.com\/courses\/react\/advanced-concepts\/#primaryimage"},"thumbnailUrl":"https:\/\/buhave.com\/courses\/wp-content\/uploads\/2025\/05\/Advanced-Concepts.webp","datePublished":"2025-05-18T19:02:39+00:00","dateModified":"2025-05-20T12:57:52+00:00","description":"Advanced concepts in React enhance performance, reusability, and scalability through patterns like context, refs, and code splitting.","breadcrumb":{"@id":"https:\/\/buhave.com\/courses\/react\/advanced-concepts\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/buhave.com\/courses\/react\/advanced-concepts\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/buhave.com\/courses\/react\/advanced-concepts\/#primaryimage","url":"https:\/\/buhave.com\/courses\/wp-content\/uploads\/2025\/05\/Advanced-Concepts.webp","contentUrl":"https:\/\/buhave.com\/courses\/wp-content\/uploads\/2025\/05\/Advanced-Concepts.webp","width":1200,"height":628,"caption":"Advanced Concepts"},{"@type":"BreadcrumbList","@id":"https:\/\/buhave.com\/courses\/react\/advanced-concepts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Courses","item":"https:\/\/buhave.com\/courses\/"},{"@type":"ListItem","position":2,"name":"React Course","item":"https:\/\/buhave.com\/courses\/learn\/react\/"},{"@type":"ListItem","position":3,"name":"Advanced Concepts"}]},{"@type":"WebSite","@id":"https:\/\/buhave.com\/courses\/#website","url":"https:\/\/buhave.com\/courses\/","name":"BUHAVE","description":"Courses - Learn Online for Free","publisher":{"@id":"https:\/\/buhave.com\/courses\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/buhave.com\/courses\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/buhave.com\/courses\/#organization","name":"BUHAVE","url":"https:\/\/buhave.com\/courses\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/buhave.com\/courses\/#\/schema\/logo\/image\/","url":"https:\/\/buhave.com\/courses\/wp-content\/uploads\/2025\/03\/buhave-course.webp","contentUrl":"https:\/\/buhave.com\/courses\/wp-content\/uploads\/2025\/03\/buhave-course.webp","width":375,"height":75,"caption":"BUHAVE"},"image":{"@id":"https:\/\/buhave.com\/courses\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/BeYouHave\/","https:\/\/www.linkedin.com\/company\/buhave","https:\/\/www.youtube.com\/@buhave"]},{"@type":"Person","@id":"https:\/\/buhave.com\/courses\/#\/schema\/person\/04fe0254e118521c9fbb3da39de5acca","name":"Naveed Safdar","description":"I\u2019m Naveed Safdar - SEO Manager with over 10 years of experience in SEO and Digital Marketing. I\u2019ve had the privilege of working with leading national and international companies including Grafdom, PakWheels, Systems Limited, Confiz, Educative, and Dubizzle Labs. My expertise spans technical SEO, content strategy, organic growth, and performance analytics - helping businesses improve visibility, traffic, and ROI.","sameAs":["https:\/\/www.linkedin.com\/in\/naveedsafdar\/","https:\/\/www.facebook.com\/naveedsafdarawan\/","https:\/\/www.youtube.com\/@naveedsafdar"],"url":"https:\/\/buhave.com\/courses\/author\/naveed-safdar\/"}]}},"_links":{"self":[{"href":"https:\/\/buhave.com\/courses\/wp-json\/wp\/v2\/posts\/671","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buhave.com\/courses\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buhave.com\/courses\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buhave.com\/courses\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buhave.com\/courses\/wp-json\/wp\/v2\/comments?post=671"}],"version-history":[{"count":1,"href":"https:\/\/buhave.com\/courses\/wp-json\/wp\/v2\/posts\/671\/revisions"}],"predecessor-version":[{"id":673,"href":"https:\/\/buhave.com\/courses\/wp-json\/wp\/v2\/posts\/671\/revisions\/673"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buhave.com\/courses\/wp-json\/wp\/v2\/media\/672"}],"wp:attachment":[{"href":"https:\/\/buhave.com\/courses\/wp-json\/wp\/v2\/media?parent=671"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buhave.com\/courses\/wp-json\/wp\/v2\/categories?post=671"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buhave.com\/courses\/wp-json\/wp\/v2\/tags?post=671"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}