

{"id":113475,"date":"2023-05-26T09:00:17","date_gmt":"2023-05-26T03:30:17","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=113475"},"modified":"2023-05-26T09:39:29","modified_gmt":"2023-05-26T04:09:29","slug":"react-table","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/react-table\/","title":{"rendered":"React Table"},"content":{"rendered":"<p>React Table is a powerful library that allows developers to create customizable and efficient tables in their React applications. It offers a variety of features that make it easier to manage and display large amounts of data in a tabular format.<\/p>\n<p>In this article, we will explore the features of React Table, how to install it, and how to use it in a React application.<\/p>\n<h3>Installing React Table<\/h3>\n<p>Before we dive into using React Table, we need to install it. To install React Table, we can use the following command in the terminal:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">npm install react-table\r\n<\/pre>\n<p>This will install the latest version of React Table and its dependencies in our project.<\/p>\n<h3>Basic Usage<\/h3>\n<p>Let&#8217;s start with a basic example of using React Table. We will create a table with three columns: Name, Age, and Email. Here is the code:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">import React from \"https:\/\/cdn.skypack.dev\/react@17.0.1\";\r\nimport ReactDOM from \"https:\/\/cdn.skypack.dev\/react-dom@17.0.1\";\r\nimport { useTable } from \"https:\/\/cdn.skypack.dev\/react-table@7.8.0\";\r\n\r\nfunction Table({ columns, data }) {\r\n  const tableInstance = useTable({ columns, data });\r\n\r\n  const {\r\n    getTableProps,\r\n    getTableBodyProps,\r\n    headerGroups,\r\n    rows,\r\n    prepareRow,\r\n  } = tableInstance;\r\n\r\n  return (\r\n    &lt;table {...getTableProps()}&gt;\r\n      &lt;thead&gt;\r\n        {headerGroups.map((headerGroup) =&gt; (\r\n          &lt;tr {...headerGroup.getHeaderGroupProps()}&gt;\r\n            {headerGroup.headers.map((column) =&gt; (\r\n              &lt;th {...column.getHeaderProps()}&gt;{column.render('Header')}&lt;\/th&gt;\r\n            ))}\r\n          &lt;\/tr&gt;\r\n        ))}\r\n      &lt;\/thead&gt;\r\n      &lt;tbody {...getTableBodyProps()}&gt;\r\n        {rows.map((row) =&gt; {\r\n          prepareRow(row);\r\n          return (\r\n            &lt;tr {...row.getRowProps()}&gt;\r\n              {row.cells.map((cell) =&gt; (\r\n                &lt;td {...cell.getCellProps()}&gt;{cell.render('Cell')}&lt;\/td&gt;\r\n              ))}\r\n            &lt;\/tr&gt;\r\n          );\r\n        })}\r\n      &lt;\/tbody&gt;\r\n    &lt;\/table&gt;\r\n  );\r\n}\r\n\r\nfunction App() {\r\n  const columns = [\r\n    {\r\n      Header: 'Name',\r\n      accessor: 'name',\r\n    },\r\n    {\r\n      Header: 'Age',\r\n      accessor: 'age',\r\n    },\r\n    {\r\n      Header: 'Email',\r\n      accessor: 'email',\r\n    },\r\n  ];\r\n\r\n  const data = [\r\n    {\r\n      name: 'Mehul Garg',\r\n      age: 22,\r\n      email: 'mehulgarg@example.com',\r\n    },\r\n    {\r\n      name: 'DataFlair',\r\n      age: 18,\r\n      email: 'dataflair@example.com',\r\n    },\r\n  ];\r\n\r\n  return &lt;Table columns={columns} data={data} \/&gt;;\r\n}\r\n\r\nReactDOM.render(&lt;App \/&gt;, document.getElementById('root'));\r\n<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/03\/basic-usage.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-113546\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/03\/basic-usage.png\" alt=\"basic usage\" width=\"468\" height=\"144\" \/><\/a><\/p>\n<p>In this example, we import the useTable hook from React Table and create a Table component. We then use the useTable hook to create an instance of the table with the given columns and data.<\/p>\n<p>Then we destructure some important values from the table instance, including getTableProps, getTableBodyProps, headerGroups, rows, and prepareRow. We use these values to render the table header and body.<\/p>\n<p>In the getTableProps method, we pass any additional props we want to apply to the table element, such as className or style.<\/p>\n<p>In the headerGroups.map method, we iterate over each header group and render a table row element. We also iterate over each header in the group and render a table header element for each column.<\/p>\n<p>In the rows.map method, we iterate over each row and use the prepareRow method to prepare the row for rendering. We then render a table row element and iterate over each cell in the row, rendering a table data element for each cell.<\/p>\n<p>The getCellProps and render methods are used to apply any additional props to the table data element.<\/p>\n<p>With this basic example, we can see how easy it is to create a table with React Table. However, React Table has many more features that can make table management even easier and more efficient.<\/p>\n<h3>Advanced Features of React Table<\/h3>\n<p>React Table offers a variety of advanced features that can be used to create more complex and efficient tables. Let&#8217;s take a look at some of these features.<\/p>\n<h4>Sorting<\/h4>\n<p>Sorting is a common feature in tables that allows users to sort the data by a particular column. React Table makes sorting easy by providing a useSortBy hook that can be used to add sorting functionality to a table.<\/p>\n<p>To use sorting in React Table, we need to add the useSortBy hook to the useTable hook, like this:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">const tableInstance = useTable({ columns, data }, useSortBy);<\/pre>\n<p>We also need to update the table header to include a sorting icon.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;th {...column.getHeaderProps(column.getSortByToggleProps())}&gt;\r\n  {column.render('Header')}\r\n  {column.isSorted ? (column.isSortedDesc ? ' \ud83d\udd3d' : ' \ud83d\udd3c') : ''}\r\n&lt;\/th&gt;\r\n<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/03\/sorting.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-113547\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/03\/sorting.png\" alt=\"sorting\" width=\"448\" height=\"129\" \/><\/a><\/p>\n<p>In this example, we use the getSortByToggleProps method to get the props needed to toggle the sorting. We also render a sorting icon based on whether the column is currently sorted and whether it is sorted in descending order.<\/p>\n<h4>Pagination<\/h4>\n<p>Pagination is another common feature in tables that allows users to view the data in smaller, more manageable chunks. React Table provides a usePagination hook that can be used to add pagination functionality to a table.<\/p>\n<p>To use pagination in React Table, we need to add the usePagination hook to the useTable hook, like this:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">const tableInstance = useTable({ columns, data }, useSortBy, usePagination);\r\n<\/pre>\n<p>We also need to update the table body to only render a subset of the rows based on the current page and page size:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;tbody {...getTableBodyProps()}&gt;\r\n  {page.map((row) =&gt; {\r\n    prepareRow(row);\r\n    return (\r\n      &lt;tr {...row.getRowProps()}&gt;\r\n        {row.cells.map((cell) =&gt; (\r\n          &lt;td {...cell.getCellProps()}&gt;{cell.render('Cell')}&lt;\/td&gt;\r\n        ))}\r\n      &lt;\/tr&gt;\r\n    );\r\n  })}\r\n&lt;\/tbody&gt;\r\n<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/03\/pagination.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-113548\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/03\/pagination.png\" alt=\"pagination\" width=\"521\" height=\"61\" \/><\/a><\/p>\n<p>Here we use the page property from the table instance to only render a subset of the rows.<\/p>\n<h3>When to use Table in React:<\/h3>\n<p><strong>1. Large datasets:<\/strong><\/p>\n<p>React Table is optimized for handling large datasets efficiently. If you have a lot of data to display in a table, React Table can help you improve the performance of your application by only rendering the rows that are currently visible on the screen.<\/p>\n<p><strong>2. Complex table functionality:<\/strong><\/p>\n<p>If you need to implement advanced table functionality like sorting, filtering, grouping, or aggregation, React Table provides a comprehensive set of features to make it easy to implement.<\/p>\n<h3>When not to use Tables in React:<\/h3>\n<p><strong>1. Simple tables:<\/strong><\/p>\n<p>If you only need to display a small amount of data in a basic table with no advanced functionality, you may not need to use React Table. In this case, you could use regular HTML and CSS to create your table.<\/p>\n<p><strong>2. Tight project timelines:<\/strong><\/p>\n<p>If you are working on a project with tight timelines and you do not have much time to learn a new library, you may not want to use React Table. In this case, you could consider using a simpler library or building your own table component from scratch.<\/p>\n<h3>Tanstack Table in React<\/h3>\n<p>Tanstack Table is a powerful and flexible table library for React applications that provides a simple and intuitive way to create, customize, and interact with tables. It is based on the popular React Table library, but with several key improvements that make it even more effective and user-friendly.<\/p>\n<h3>Features of Tanstack Table<\/h3>\n<p>It allows developers to easily customize the look and feel of their tables using CSS, or to create custom cell renderers and column filters to meet specific needs. It is designed to be highly optimized, with features like virtualization and memoization.<\/p>\n<p>Tanstack Table also provides a range of advanced features and functionality.<\/p>\n<p>For example, it supports nested tables, allowing us to create complex table structures.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">const data = [\r\n  { id: 1, name: 'John', age: 30 },\r\n  { id: 2, name: 'Jane', age: 25 },\r\n  { id: 3, name: 'Bob', age: 40 },\r\n  { id: 4, name: 'Sarah', age: 35 },\r\n];\r\n\r\nconst columns = [\r\n  { Header: 'ID', accessor: 'id' },\r\n  { Header: 'Name', accessor: 'name' },\r\n  { Header: 'Age', accessor: 'age' },\r\n];\r\n\r\nconst tableInstance = TanStackTable.useTable({\r\n  columns,\r\n  data,\r\n});\r\n\r\nconst { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } =\r\n  tableInstance;\r\n\r\nReactDOM.render(\r\n  &lt;table {...getTableProps()}&gt;\r\n    &lt;thead&gt;\r\n      {headerGroups.map((headerGroup) =&gt; (\r\n        &lt;tr {...headerGroup.getHeaderGroupProps()}&gt;\r\n          {headerGroup.headers.map((column) =&gt; (\r\n            &lt;th {...column.getHeaderProps()}&gt;{column.render('Header')}&lt;\/th&gt;\r\n          ))}\r\n        &lt;\/tr&gt;\r\n      ))}\r\n    &lt;\/thead&gt;\r\n    &lt;tbody {...getTableBodyProps()}&gt;\r\n      {rows.map((row) =&gt; {\r\n        prepareRow(row);\r\n        return (\r\n          &lt;tr {...row.getRowProps()}&gt;\r\n            {row.cells.map((cell) =&gt; (\r\n              &lt;td {...cell.getCellProps()}&gt;{cell.render('Cell')}&lt;\/td&gt;\r\n            ))}\r\n          &lt;\/tr&gt;\r\n        );\r\n      })}\r\n    &lt;\/tbody&gt;\r\n  &lt;\/table&gt;,\r\n  document.getElementById('table')\r\n);\r\n<\/pre>\n<p><strong>Output<\/strong><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/03\/tanstack-table.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-113549\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/03\/tanstack-table.png\" alt=\"tanstack table\" width=\"858\" height=\"254\" \/><\/a><\/p>\n<h3>Conclusion:<\/h3>\n<p>React Table is a powerful library that provides a flexible and efficient way to create tables in React applications. With its rich set of features and hooks, React Table makes it easy to add sorting, pagination, filtering, grouping, and more.<\/p>\n<p>React Table is highly customizable, and its API is designed to be easy to use and understand. Whether you&#8217;re building a simple table or a complex data visualization, React Table provides the tools you need to get the job done.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>React Table is a powerful library that allows developers to create customizable and efficient tables in their React applications. It offers a variety of features that make it easier to manage and display large&#46;&#46;&#46;<\/p>\n","protected":false},"author":581,"featured_media":113545,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27227],"tags":[27423,27424],"class_list":["post-113475","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-react-tutorials","tag-react-table","tag-tanstack-table-in-react"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>React Table - DataFlair<\/title>\n<meta name=\"description\" content=\"With its rich set of features and hooks, React Table makes it easy to add sorting, pagination, filtering, grouping, and more.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/react-table\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"React Table - DataFlair\" \/>\n<meta property=\"og:description\" content=\"With its rich set of features and hooks, React Table makes it easy to add sorting, pagination, filtering, grouping, and more.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/react-table\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-26T03:30:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-26T04:09:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/03\/react-tables.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=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"React Table - DataFlair","description":"With its rich set of features and hooks, React Table makes it easy to add sorting, pagination, filtering, grouping, and more.","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:\/\/data-flair.training\/blogs\/react-table\/","og_locale":"en_US","og_type":"article","og_title":"React Table - DataFlair","og_description":"With its rich set of features and hooks, React Table makes it easy to add sorting, pagination, filtering, grouping, and more.","og_url":"https:\/\/data-flair.training\/blogs\/react-table\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2023-05-26T03:30:17+00:00","article_modified_time":"2023-05-26T04:09:29+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/03\/react-tables.webp","type":"image\/webp"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/react-table\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/react-table\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445"},"headline":"React Table","datePublished":"2023-05-26T03:30:17+00:00","dateModified":"2023-05-26T04:09:29+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/react-table\/"},"wordCount":989,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/react-table\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/03\/react-tables.webp","keywords":["React Table","Tanstack Table in React"],"articleSection":["React Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/react-table\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/react-table\/","url":"https:\/\/data-flair.training\/blogs\/react-table\/","name":"React Table - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/react-table\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/react-table\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/03\/react-tables.webp","datePublished":"2023-05-26T03:30:17+00:00","dateModified":"2023-05-26T04:09:29+00:00","description":"With its rich set of features and hooks, React Table makes it easy to add sorting, pagination, filtering, grouping, and more.","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/react-table\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/react-table\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/react-table\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/03\/react-tables.webp","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/03\/react-tables.webp","width":1200,"height":628,"caption":"react tables"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/react-table\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"React Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/react-tutorials\/"},{"@type":"ListItem","position":3,"name":"React Table"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam6\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/113475","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/581"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=113475"}],"version-history":[{"count":6,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/113475\/revisions"}],"predecessor-version":[{"id":113550,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/113475\/revisions\/113550"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/113545"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=113475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=113475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=113475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}