{"id":660,"date":"2025-05-18T19:16:43","date_gmt":"2025-05-18T19:16:43","guid":{"rendered":"https:\/\/buhave.com\/courses\/?p=660"},"modified":"2025-05-20T12:57:52","modified_gmt":"2025-05-20T12:57:52","slug":"forms-and-validation","status":"publish","type":"post","link":"https:\/\/buhave.com\/courses\/react\/forms-and-validation\/","title":{"rendered":"Forms and Validation"},"content":{"rendered":"<h2>Controlled vs uncontrolled components<\/h2>\n<p>Controlled and uncontrolled components are two approaches to handling form inputs and user data in React. Understanding their differences is key to managing form state effectively and building predictable user interfaces.<\/p>\n<h3>What Are Controlled Components<\/h3>\n<p>Controlled components have their form data managed by React state. The component\u2019s input values are set by state variables, and user input changes are handled via event handlers that update this state. React has full control over the form elements.<\/p>\n<p><strong>Advantages of Controlled Components<\/strong><\/p>\n<ul>\n<li>Enables validation and conditional logic during input<\/li>\n<li>Allows instant feedback and dynamic form behavior<\/li>\n<li>Makes it easier to enforce formatting and input constraints<\/li>\n<li>Integrates seamlessly with React\u2019s state-driven architecture<\/li>\n<\/ul>\n<h3>What Are Uncontrolled Components<\/h3>\n<p>Uncontrolled components store their own internal state in the DOM, and React does not directly manage input values. Instead, you use references to access the form values when needed, often during form submission.<\/p>\n<p><strong>Advantages of Uncontrolled Components<\/strong><\/p>\n<ul>\n<li>Simpler to implement for basic forms or quick prototypes<\/li>\n<li>Less code required since React state is not involved<\/li>\n<li>Can be useful when integrating with non-React code or libraries<\/li>\n<\/ul>\n<p><strong>Key Differences<\/strong><\/p>\n<ul>\n<li>Controlled components keep React as the \u201csingle source of truth\u201d for form data, while uncontrolled components rely on the DOM.<\/li>\n<li>Controlled components update state on every input change, uncontrolled ones update only on demand.<\/li>\n<li>Controlled components allow easier validation and side effects during typing.<\/li>\n<\/ul>\n<p>Choosing between controlled and uncontrolled components depends on your application&#8217;s complexity, performance needs, and form control requirements. Controlled components offer more control, while uncontrolled ones offer simplicity.<\/p>\n<h2>Handling inputs and Events<\/h2>\n<p>Handling inputs and events in React involves managing user interactions with form elements like text fields, buttons, and selects, and responding to these actions by updating component state or triggering other behaviors.<\/p>\n<h3>Handling Inputs<\/h3>\n<p>Input elements in React can be controlled or uncontrolled. Controlled inputs have their values tied to React state, meaning the displayed value always reflects the state. To update the state based on user input, you attach event handlers that respond to changes and update state accordingly.<\/p>\n<p><strong>Common Input Events<\/strong><\/p>\n<p>The most frequently used event for input elements is the change event, which fires when the user modifies the input\u2019s value. React handles this with an event handler that receives an event object containing information about the change.<\/p>\n<p><strong>Updating State from Inputs<\/strong><\/p>\n<p>When handling inputs, the event handler extracts the new value from the event object and uses a state updater function to modify the component\u2019s state. This triggers a re-render so the input\u2019s displayed value stays in sync with the state.<\/p>\n<h3>Handling Other Events<\/h3>\n<p>Besides input changes, React supports many other events like clicks, form submissions, keyboard presses, and focus\/blur. You attach event handlers to elements using camelCase event names and pass functions to handle those events.<\/p>\n<p><strong>Event Handler Functions<\/strong><\/p>\n<p>Event handlers receive a synthetic event object, a cross-browser wrapper around the native event, allowing consistent properties and methods. You can prevent default behaviors, stop propagation, and access event target properties within these handlers.<\/p>\n<p><strong>Best Practices<\/strong><\/p>\n<ul>\n<li>Keep event handlers focused on a single responsibility<\/li>\n<li>Use controlled inputs to ensure React manages the data flow<\/li>\n<li>Debounce or throttle input events when handling expensive operations<\/li>\n<li>Use arrow functions or bind handlers to maintain the correct context<\/li>\n<\/ul>\n<p>Properly handling inputs and events in React is fundamental for creating interactive, user-friendly interfaces that respond efficiently and predictably to user actions.<\/p>\n<h2>Basic form validation<\/h2>\n<p>Basic form validation in React involves checking user input against defined rules to ensure data correctness before submission. It helps provide feedback to users and prevents invalid data from being processed.<\/p>\n<h3>Types of Validation<\/h3>\n<p>Validation can be performed on the client side using JavaScript within React components, and it typically includes checks for required fields, input formats (like email), length constraints, and value ranges.<\/p>\n<p><strong>Implementing Validation<\/strong><\/p>\n<p>Validation logic is often triggered on input change, on form submission, or both. You compare the input values against validation rules and update the component\u2019s state to reflect errors or success messages.<\/p>\n<p><strong>Displaying Validation Feedback<\/strong><\/p>\n<p>Users should be informed of validation results through error messages or visual cues near the input fields. This improves usability and guides users to correct mistakes.<\/p>\n<p><strong>Common Validation Techniques<\/strong><\/p>\n<ul>\n<li>Using state variables to track error messages or validation status<\/li>\n<li>Conditionally rendering error text based on validation results<\/li>\n<li>Disabling the submit button when inputs are invalid<\/li>\n<li>Using regular expressions to validate formats such as emails or phone numbers<\/li>\n<\/ul>\n<p><strong>Best Practices<\/strong><\/p>\n<ul>\n<li>Validate inputs both on change and on form submission<\/li>\n<li>Keep validation logic modular and reusable<\/li>\n<li>Provide clear and concise error messages<\/li>\n<li>Ensure accessibility by associating error messages with inputs<\/li>\n<\/ul>\n<p>Basic form validation improves data integrity and user experience by catching errors early and providing immediate feedback within React applications.<\/p>\n<h2>Using Formik and Yup<\/h2>\n<p>Formik and Yup are popular libraries used together to simplify form management and validation in React applications. Formik handles form state, submission, and input events, while Yup provides a powerful schema-based validation solution.<\/p>\n<h3>What is Formik<\/h3>\n<p>Formik is a React library that helps manage form state, handle input changes, track form submission, and manage validation. It reduces boilerplate code by providing hooks and components to streamline building complex forms.<\/p>\n<h3>What is Yup<\/h3>\n<p>Yup is a JavaScript schema builder for value parsing and validation. It allows you to define validation rules in a clear, declarative way using schemas, supporting complex nested objects and custom validation logic.<\/p>\n<p><strong>How Formik and Yup Work Together<\/strong><\/p>\n<p>Formik integrates seamlessly with Yup by allowing you to pass a Yup validation schema to handle form validation. This automates the process of validating fields on change or submit, and returns detailed error messages that Formik manages in its state.<\/p>\n<p><strong>Benefits of Using Formik and Yup<\/strong><\/p>\n<ul>\n<li>Simplifies form state management and validation logic<\/li>\n<li>Reduces repetitive code by automating common form tasks<\/li>\n<li>Supports synchronous and asynchronous validation<\/li>\n<li>Improves maintainability and scalability of forms<\/li>\n<li>Provides built-in support for error messages and form feedback<\/li>\n<\/ul>\n<p><strong>Typical Workflow<\/strong><\/p>\n<ul>\n<li>Define form initial values in Formik<\/li>\n<li>Create a Yup validation schema to specify rules<\/li>\n<li>Use Formik components or hooks to build form UI<\/li>\n<li>Formik validates input against Yup schema on input change or form submit<\/li>\n<li>Display validation errors and handle form submission logic<\/li>\n<\/ul>\n<p><strong>Best Practices<\/strong><\/p>\n<ul>\n<li>Keep validation schemas modular and reusable<\/li>\n<li>Use Yup\u2019s rich API for complex validation scenarios<\/li>\n<li>Leverage Formik\u2019s hooks for cleaner functional components<\/li>\n<li>Test form validation logic independently from UI<\/li>\n<\/ul>\n<p>Using Formik together with Yup provides a robust and efficient way to manage forms and validations in React, especially for complex forms requiring clear structure and reliable validation.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Controlled vs uncontrolled components Controlled and uncontrolled components are two approaches to handling form inputs and user data in React. Understanding their differences is key to managing form state effectively and building predictable user interfaces. What Are Controlled Components Controlled components have their form data<\/p>\n","protected":false},"author":1,"featured_media":661,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-660","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>Forms and Validation - React Course<\/title>\n<meta name=\"description\" content=\"Forms and validation handle user input and ensure data correctness before submission in React applications.\" \/>\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\/forms-and-validation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Forms and Validation - React Course\" \/>\n<meta property=\"og:description\" content=\"Forms and validation handle user input and ensure data correctness before submission in React applications.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/buhave.com\/courses\/react\/forms-and-validation\/\" \/>\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:16:43+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\/Forms-and-Validation.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\\\/forms-and-validation\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/forms-and-validation\\\/\"},\"author\":{\"name\":\"Naveed Safdar\",\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/#\\\/schema\\\/person\\\/04fe0254e118521c9fbb3da39de5acca\"},\"headline\":\"Forms and Validation\",\"datePublished\":\"2025-05-18T19:16:43+00:00\",\"dateModified\":\"2025-05-20T12:57:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/forms-and-validation\\\/\"},\"wordCount\":1092,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/forms-and-validation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/buhave.com\\\/courses\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Forms-and-Validation.webp\",\"articleSection\":[\"React Course\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/forms-and-validation\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/forms-and-validation\\\/\",\"url\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/forms-and-validation\\\/\",\"name\":\"Forms and Validation - React Course\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/forms-and-validation\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/forms-and-validation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/buhave.com\\\/courses\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Forms-and-Validation.webp\",\"datePublished\":\"2025-05-18T19:16:43+00:00\",\"dateModified\":\"2025-05-20T12:57:52+00:00\",\"description\":\"Forms and validation handle user input and ensure data correctness before submission in React applications.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/forms-and-validation\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/forms-and-validation\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/forms-and-validation\\\/#primaryimage\",\"url\":\"https:\\\/\\\/buhave.com\\\/courses\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Forms-and-Validation.webp\",\"contentUrl\":\"https:\\\/\\\/buhave.com\\\/courses\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/Forms-and-Validation.webp\",\"width\":1200,\"height\":628,\"caption\":\"Forms and Validation\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/buhave.com\\\/courses\\\/react\\\/forms-and-validation\\\/#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\":\"Forms and Validation\"}]},{\"@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":"Forms and Validation - React Course","description":"Forms and validation handle user input and ensure data correctness before submission in React applications.","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\/forms-and-validation\/","og_locale":"en_US","og_type":"article","og_title":"Forms and Validation - React Course","og_description":"Forms and validation handle user input and ensure data correctness before submission in React applications.","og_url":"https:\/\/buhave.com\/courses\/react\/forms-and-validation\/","og_site_name":"BUHAVE","article_publisher":"https:\/\/www.facebook.com\/BeYouHave\/","article_author":"https:\/\/www.facebook.com\/naveedsafdarawan\/","article_published_time":"2025-05-18T19:16:43+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\/Forms-and-Validation.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\/forms-and-validation\/#article","isPartOf":{"@id":"https:\/\/buhave.com\/courses\/react\/forms-and-validation\/"},"author":{"name":"Naveed Safdar","@id":"https:\/\/buhave.com\/courses\/#\/schema\/person\/04fe0254e118521c9fbb3da39de5acca"},"headline":"Forms and Validation","datePublished":"2025-05-18T19:16:43+00:00","dateModified":"2025-05-20T12:57:52+00:00","mainEntityOfPage":{"@id":"https:\/\/buhave.com\/courses\/react\/forms-and-validation\/"},"wordCount":1092,"commentCount":0,"publisher":{"@id":"https:\/\/buhave.com\/courses\/#organization"},"image":{"@id":"https:\/\/buhave.com\/courses\/react\/forms-and-validation\/#primaryimage"},"thumbnailUrl":"https:\/\/buhave.com\/courses\/wp-content\/uploads\/2025\/05\/Forms-and-Validation.webp","articleSection":["React Course"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/buhave.com\/courses\/react\/forms-and-validation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/buhave.com\/courses\/react\/forms-and-validation\/","url":"https:\/\/buhave.com\/courses\/react\/forms-and-validation\/","name":"Forms and Validation - React Course","isPartOf":{"@id":"https:\/\/buhave.com\/courses\/#website"},"primaryImageOfPage":{"@id":"https:\/\/buhave.com\/courses\/react\/forms-and-validation\/#primaryimage"},"image":{"@id":"https:\/\/buhave.com\/courses\/react\/forms-and-validation\/#primaryimage"},"thumbnailUrl":"https:\/\/buhave.com\/courses\/wp-content\/uploads\/2025\/05\/Forms-and-Validation.webp","datePublished":"2025-05-18T19:16:43+00:00","dateModified":"2025-05-20T12:57:52+00:00","description":"Forms and validation handle user input and ensure data correctness before submission in React applications.","breadcrumb":{"@id":"https:\/\/buhave.com\/courses\/react\/forms-and-validation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/buhave.com\/courses\/react\/forms-and-validation\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/buhave.com\/courses\/react\/forms-and-validation\/#primaryimage","url":"https:\/\/buhave.com\/courses\/wp-content\/uploads\/2025\/05\/Forms-and-Validation.webp","contentUrl":"https:\/\/buhave.com\/courses\/wp-content\/uploads\/2025\/05\/Forms-and-Validation.webp","width":1200,"height":628,"caption":"Forms and Validation"},{"@type":"BreadcrumbList","@id":"https:\/\/buhave.com\/courses\/react\/forms-and-validation\/#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":"Forms and Validation"}]},{"@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\/660","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=660"}],"version-history":[{"count":1,"href":"https:\/\/buhave.com\/courses\/wp-json\/wp\/v2\/posts\/660\/revisions"}],"predecessor-version":[{"id":662,"href":"https:\/\/buhave.com\/courses\/wp-json\/wp\/v2\/posts\/660\/revisions\/662"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buhave.com\/courses\/wp-json\/wp\/v2\/media\/661"}],"wp:attachment":[{"href":"https:\/\/buhave.com\/courses\/wp-json\/wp\/v2\/media?parent=660"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buhave.com\/courses\/wp-json\/wp\/v2\/categories?post=660"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buhave.com\/courses\/wp-json\/wp\/v2\/tags?post=660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}