{"id":85729,"date":"2024-11-27T18:07:07","date_gmt":"2024-11-27T14:37:07","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h\/"},"modified":"2024-11-27T18:07:07","modified_gmt":"2024-11-27T14:37:07","slug":"building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h\/","title":{"rendered":"\u0633\u0627\u062e\u062a \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0628\u0631\u0627\u06cc \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0648\u0636\u0639\u06cc\u062a \u062c\u062f\u0648\u0644 TanStack \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n              Tanstack Table \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 UI \u0628\u0633\u06cc\u0627\u0631 \u0642\u0627\u0628\u0644 \u062a\u0646\u0638\u06cc\u0645 \u0648 \u0628\u062f\u0648\u0646 \u0647\u062f \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u062c\u062f\u0627\u0648\u0644 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u062f\u0631 \u0686\u0627\u0631\u0686\u0648\u0628 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u0632 \u062c\u0645\u0644\u0647 React\u060c Vue \u0648 Solid \u0627\u0633\u062a.<\/p>\n<p>\u0645\u0646 \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u0645 tanstack-table-search-params. \u0627\u06cc\u0646 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0648\u0636\u0639\u06cc\u062a TanStack Table &#8211; \u0645\u0627\u0646\u0646\u062f \u062c\u0633\u062a\u062c\u0648 \u0648 \u0645\u0631\u062a\u0628\u200c\u0633\u0627\u0632\u06cc &#8211; \u0631\u0627 \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc React \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>      React Hook \u0628\u0631\u0627\u06cc \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0648\u0636\u0639\u06cc\u062a TanStack Table \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc URL.<\/p>\n<p>React Hook \u0628\u0631\u0627\u06cc \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0648\u0636\u0639\u06cc\u062a TanStack Table \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc URL.<\/p>\n<p>    tanstack-table-search-params.mp4<\/p>\n<p>\ud83d\ude80 \u0634\u0631\u0648\u0639 \u0633\u0631\u06cc\u0639<\/p>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0628\u0633\u062a\u0647 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>npm i tanstack-table-search-params<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u06af\u0631 \u0627\u0632 Next.js (\u0645\u0633\u06cc\u0631\u06cc\u0627\u0628 \u0635\u0641\u062d\u0627\u062a) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0647\u0648\u06a9 \u0628\u0647 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>import { useReactTable } from &#8220;tanstack-table&#8221;;<br \/>\nimport { useRouter } from &#8220;next\/router&#8221;;<br \/>\nimport { useTableSearchParams } from &#8220;tanstack-table-search-params&#8221;;<br \/>\nconst router = useRouter();<\/p>\n<p>\/\/ Get state and onChanges<br \/>\nconst stateAndOnChanges = useTableSearchParams({<br \/>\n  query: router.query,<br \/>\n  pathname: router.pathname,<br \/>\n  replace: router.replace,<br \/>\n  \/\/ or<br \/>\n  push: router.push,<br \/>\n});<\/p>\n<p>const table = useReactTable({<br \/>\n  \/\/ Set state and onChanges<br \/>\n  &#8230;stateAndOnChanges,<br \/>\n  data,<br \/>\n  columns,<br \/>\n  getCoreRowModel: getCoreRowModel(),<br \/>\n  getFilteredRowModel: getFilteredRowModel(),<br \/>\n  getSortedRowModel: getSortedRowModel(),<br \/>\n  \/\/ &#8230; other options\u2026<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u062c\u062f\u0648\u0644 TanStack \u062f\u0631 React<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0645\u0642\u062f\u0645\u0647 \u0633\u0631\u06cc\u0639 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u062c\u062f\u0627\u0648\u0644 \u0628\u0627 TanStack Table \u062f\u0631 React \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>TanStack Table \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f useReactTable \u0642\u0644\u0627\u0628\u060c \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u062a\u0639\u0627\u0631\u06cc\u0641 \u0633\u062a\u0648\u0646 \u0631\u0627 \u0645\u06cc \u06af\u06cc\u0631\u062f. \u0648\u0636\u0639\u06cc\u062a \u062c\u062f\u0648\u0644 \u0648 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0647\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u0631\u0646\u062f\u0631 \u062c\u062f\u0648\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>import {<br \/>\n  createColumnHelper,<br \/>\n  flexRender,<br \/>\n  getCoreRowModel,<br \/>\n  useReactTable,<br \/>\n} from &#8220;@tanstack\/react-table&#8221;;<\/p>\n<p>type User = { id: string; name: string };<\/p>\n<p>\/\/ Sample data<br \/>\nconst data: User[] = [<br \/>\n  { id: &#8220;1&#8221;, name: &#8220;John&#8221; },<br \/>\n  { id: &#8220;2&#8221;, name: &#8220;Sara&#8221; },<br \/>\n];<\/p>\n<p>\/\/ Column definitions<br \/>\nconst columnHelper = createColumnHelper&lt;User&gt;();<br \/>\nconst columns = [<br \/>\n  columnHelper.accessor(&#8220;id&#8221;, {}),<br \/>\n  columnHelper.accessor(&#8220;name&#8221;, {}),<br \/>\n];<\/p>\n<p>export default function UserTable() {<br \/>\n  \/\/ Create table<br \/>\n  const table = useReactTable({<br \/>\n    data,<br \/>\n    columns,<br \/>\n    getCoreRowModel: getCoreRowModel(),<br \/>\n  });<\/p>\n<p>  return (<br \/>\n    &lt;div&gt;<br \/>\n      &lt;table&gt;<br \/>\n        &lt;thead&gt;<br \/>\n          &lt;tr&gt;<br \/>\n            {table.getFlatHeaders().map((header) =&gt; (<br \/>\n              &lt;th key={header.id}&gt;<br \/>\n                {flexRender(<br \/>\n                  header.column.columnDef.header,<br \/>\n                  header.getContext(),<br \/>\n                )}<br \/>\n              th&gt;<br \/>\n            ))}<br \/>\n          tr&gt;<br \/>\n        thead&gt;<br \/>\n        &lt;tbody&gt;<br \/>\n          {\/* Render table rows *\/}<br \/>\n          {table.getRowModel().rows.map((row) =&gt; (<br \/>\n            &lt;tr key={row.id}&gt;<br \/>\n              {row.getAllCells().map((cell) =&gt; (<br \/>\n                &lt;td key={cell.id}&gt;<br \/>\n                  {flexRender(cell.column.columnDef.cell, cell.getContext())}<br \/>\n                td&gt;<br \/>\n              ))}<br \/>\n            tr&gt;<br \/>\n          ))}<br \/>\n        tbody&gt;<br \/>\n      table&gt;<br \/>\n    div&gt;<br \/>\n  );<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u062c\u062f\u0648\u0644 \u062d\u0627\u0635\u0644 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0645\u0646 \u06cc\u06a9 \u0648\u06cc\u0698\u06af\u06cc \u062c\u0633\u062a\u062c\u0648 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u062c\u062f\u0648\u0644 \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f\u0645\u060c \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0632\u06cc\u0631 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>import {<br \/>\n  \/\/ &#8230;<br \/>\n+ getFilteredRowModel,<br \/>\n} from &#8220;@tanstack\/react-table&#8221;;<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>export default function UserTable() {<br \/>\n  const table = useReactTable({<br \/>\n    data,<br \/>\n    columns,<br \/>\n    getCoreRowModel: getCoreRowModel(),<br \/>\n+   getFilteredRowModel: getFilteredRowModel(),<br \/>\n  });<\/p>\n<p>  return (<br \/>\n    &lt;div&gt;<br \/>\n+     &lt;input<br \/>\n+       placeholder=&#8221;Search&#8230;&#8221;<br \/>\n+       value={table.getState().globalFilter}<br \/>\n+       onChange={(e) =&gt; table.setGlobalFilter(e.target.value)}<br \/>\n+     \/&gt;<br \/>\n      &lt;table&gt;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062c\u062f\u0648\u0644 \u0627\u06a9\u0646\u0648\u0646 \u0627\u0632 \u0639\u0645\u0644\u06a9\u0631\u062f \u062c\u0633\u062a\u062c\u0648\u06cc \u0627\u0648\u0644\u06cc\u0647 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<p>\u0627\u06cc\u0646\u062c\u0627\u060c getCoreRowModel \u0648 getFilteredRowModel \u062a\u0648\u0627\u0628\u0639\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u062c\u062f\u0648\u0644 \u0645\u062e\u062a\u0644\u0641\u06cc \u0628\u0647 \u0646\u0627\u0645 RowModels \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0645\u06cc \u06a9\u0646\u0646\u062f. \u062f\u0631 TanStack Table\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 RowModel \u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f getFilteredRowModel\u060c \u06cc\u0627 RowModel \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627 \u0631\u0627 \u06af\u0633\u062a\u0631\u0634 \u062f\u0647\u06cc\u062f\u060c \u0645\u0627\u0646\u0646\u062f \u0627\u0641\u0632\u0648\u062f\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648 \u06cc\u0627 \u0645\u0631\u062a\u0628 \u0633\u0627\u0632\u06cc \u0628\u0647 \u062c\u062f\u0648\u0644 \u062e\u0648\u062f.<\/p>\n<p>  \u0645\u0639\u0631\u0641\u06cc \u06a9\u0631\u062f\u0646 tanstack-table-search-params<\/p>\n<p>tanstack-table-search-params  \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0648\u0636\u0639\u06cc\u062a \u062c\u062f\u0648\u0644 TanStack \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0631\u0627 \u0633\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 Next.js Pages Router\u060c \u0641\u0642\u0637 \u0628\u0627\u06cc\u062f:<\/p>\n<p>\u0648\u0627\u0631\u062f\u0627\u062a \u0648 \u062a\u0645\u0627\u0633 useTableSearchParams\u060c \u0639\u0628\u0648\u0631 \u0627\u0632 useRouter \u0634\u06cc<br \/>\n\u0645\u0642\u062f\u0627\u0631 \u0628\u0631\u06af\u0634\u062a\u06cc \u0642\u0644\u0627\u0628 \u0631\u0627 \u0628\u0647 useReactTable.<\/p>\n<p>+ import { useRouter } from &#8220;next\/router&#8221;;<br \/>\n+ import { useTableSearchParams } from &#8220;tanstack-table-search-params&#8221;;<\/p>\n<p>\/\/ &#8230;<\/p>\n<p>export default function UserTable() {<br \/>\n+ const router = useRouter();<br \/>\n+ const stateAndOnChanges = useTableSearchParams(router);<br \/>\n  const table = useReactTable({<br \/>\n+   &#8230;stateAndOnChanges,<br \/>\n    \/\/ &#8230;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0646\u062a\u06cc\u062c\u0647:<\/p>\n<p>  \u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f<\/p>\n<p>\u0628\u0631\u0627\u06cc \u062a\u0648\u0636\u06cc\u062d \u0686\u06af\u0648\u0646\u06af\u06cc tanstack-table-search-params \u0648\u0636\u0639\u06cc\u062a \u062c\u062f\u0648\u0644 TanStack \u0631\u0627 \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0647\u0645\u06af\u0627\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0645\u0627 \u06a9\u062f \u0628\u0627\u0644\u0627 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u062a\u0627 \u0641\u0642\u0637 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0631\u0627 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u062f\u060c \u0628\u0647 \u062c\u0627\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u06a9\u0644 \u0622\u0646 \u0631\u0627 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u0645. router \u0634\u06cc \u0648 stateAndOnChanges \u0634\u06cc<\/p>\n<p>export default function UserTable() {<br \/>\n  const { query, pathname, replace} = useRouter();<br \/>\n  const stateAndOnChanges = useTableSearchParams({<br \/>\n    query: router.query,<br \/>\n    pathname: router.pathname,<br \/>\n    replace: router.replace,<br \/>\n  });<br \/>\n  const table = useReactTable({<br \/>\n    state: {<br \/>\n        globalFilter: stateAndOnChanges.state.globalFilter,<br \/>\n    },<br \/>\n    onGlobalFilterChange: stateAndOnChanges.onGlobalFilterChange,<br \/>\n    \/\/ &#8230;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0644\u06cc\u0644 \u0639\u0628\u0648\u0631 state.globalFilter \u0648 onGlobalFilterChange \u0628\u0647 useReactTable \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u062c\u062f\u0648\u0644 TanStack \u062f\u0631 \u062e\u0627\u0631\u062c \u0627\u0632 useReactTable.<\/p>\n<p>https:\/\/tanstack.com\/table\/latest\/docs\/guide\/global-filtering#global-filter-state<\/p>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u06a9\u062f \u0628\u0627\u0644\u0627 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c useTableSearchParams \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0645\u06cc \u06af\u06cc\u0631\u062f:<\/p>\n<p>query: \u0648\u0636\u0639\u06cc\u062a React \u0628\u0631\u0627\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL<\/p>\n<p>pathname: \u0645\u0633\u06cc\u0631 URL \u0641\u0639\u0644\u06cc<\/p>\n<p>replace  (\u06cc\u0627 push): \u062a\u0627\u0628\u0639\u06cc \u0628\u0631\u0627\u06cc \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u06cc (\u06cc\u0627 \u0641\u0634\u0627\u0631 \u062f\u0627\u062f\u0646) URL<\/p>\n<p>https:\/\/github.com\/taro-28\/tanstack-table-search-params\/blob\/main\/packages\/tanstack-table-search-params\/src\/index.ts#L123-L151<\/p>\n<p>\u0648 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f:<\/p>\n<p>state.globalFilter<br \/>\nonGlobalFilterChange<\/p>\n<p>https:\/\/github.com\/taro-28\/tanstack-table-search-params\/blob\/main\/packages\/tanstack-table-search-params\/src\/index.ts#L23-L44<\/p>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0627\u0632 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0647\u0627 \u0648 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0628\u0627\u0632\u06af\u0634\u062a\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u0635\u0648\u0631 \u06a9\u0646\u06cc\u062f\u060c \u0627\u06cc\u0646 \u0642\u0644\u0627\u0628 \u0627\u0632 \u0646\u0638\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0633\u06cc\u0627\u0631 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0627\u0648\u0644\u060c state \u0631\u0645\u0632\u06af\u0634\u0627\u06cc\u06cc \u0645\u06cc \u06a9\u0646\u062f query \u062f\u0631 \u062c\u062f\u0648\u0644 TanStack \u0632\u06cc\u0631 TableState \u062a\u0627\u06cc\u067e \u06a9\u0631\u062f\u0647 \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f:<\/p>\n<p>\u0628\u0639\u062f\u060c onGlobalFilterChange \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u062a\u0627\u0628\u0639\u06cc \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f \u06a9\u0647 \u0647\u0631 \u0642\u0633\u0645\u062a \u0627\u0632 \u0648\u0636\u0639\u06cc\u062a \u062c\u062f\u0648\u0644 TanStack \u0631\u0627 \u062f\u0631 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f. replace.<\/p>\n<p>\u0647\u0631 \u062f\u0648 \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u06cc\u062c\u0627\u062f state \u0648 onGlobalFilterChange \u0635\u0631\u0641\u0627\u064b \u062a\u0628\u062f\u06cc\u0644 \u0647\u0633\u062a\u0646\u062f (\u0634\u06cc \u2192 \u0634\u06cc\u060c \u062a\u0627\u0628\u0639 \u2192 \u062a\u0627\u0628\u0639)\u060c \u0648 \u0647\u06cc\u0686 \u06cc\u06a9 \u0627\u0632 \u0622\u0646\u0647\u0627 \u062d\u0627\u0644\u062a \u062f\u0627\u062e\u0644\u06cc \u0646\u062f\u0627\u0631\u0646\u062f. (\u062a\u0646\u0647\u0627 \u0627\u0633\u062a\u062b\u0646\u0627 \u0628\u0631\u0627\u06cc debouncing \u0627\u0633\u062a \u06a9\u0647 \u0628\u0639\u062f\u0627\u064b \u0645\u0648\u0631\u062f \u0628\u062d\u062b \u0642\u0631\u0627\u0631 \u062e\u0648\u0627\u0647\u062f \u06af\u0631\u0641\u062a\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u062d\u0627\u0644\u062a \u062f\u0627\u062e\u0644\u06cc \u0628\u0631\u0627\u06cc \u0627\u0647\u062f\u0627\u0641 debounce \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.)<\/p>\n<p>  \u0627\u06cc\u0627\u0644\u0627\u062a \u062c\u062f\u0648\u0644 TanStack \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f<\/p>\n<p>\u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631\u060c \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u0632 \u0686\u0647\u0627\u0631 \u062d\u0627\u0644\u062a \u062c\u062f\u0648\u0644 TanStack \u0632\u06cc\u0631 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u06af\u0633\u062a\u0631\u0634 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u062f\u0631 \u0622\u06cc\u0646\u062f\u0647 \u062f\u0627\u0631\u062f:<\/p>\n<p>globalFilter<br \/>\nsorting<br \/>\npagination<br \/>\ncolumnFilters<\/p>\n<p>  \u0631\u0648\u062a\u0631\u0647\u0627\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0634\u062f\u0647<\/p>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f\u060c tanstack-table-search-params \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u062d\u0627\u0644\u062a React \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0631\u0627 \u0628\u0647 \u0648\u0636\u0639\u06cc\u062a TanStack Table \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0628\u062f\u0627\u0646 \u0645\u0639\u0646\u0627\u0633\u062a \u06a9\u0647 \u0628\u0627\u06cc\u062f (\u0627\u062d\u062a\u0645\u0627\u0644\u0627) \u0628\u0627 \u0647\u0631 \u0631\u0648\u062a\u0631\u06cc \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0648\u0636\u0639\u06cc\u062a React \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0646\u06cc\u062f\u060c \u06a9\u0627\u0631 \u06a9\u0646\u062f.<\/p>\n<p>\u0646\u0645\u0648\u0646\u0647 \u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0633\u0647 \u0631\u0648\u062a\u0631 \u0632\u06cc\u0631 \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a. \u0628\u0627 \u062e\u06cc\u0627\u0644 \u0631\u0627\u062d\u062a \u0622\u0646\u0647\u0627 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<p>  \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0633\u0627\u0632\u06cc \u0627\u0636\u0627\u0641\u06cc<\/p>\n<p>\u0628\u0627 tanstack-table-search-params\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0646\u0627\u0645 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0648 \u0641\u0631\u0645\u062a \u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u0648 \u063a\u06cc\u0631\u0647 \u0631\u0627 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>  \u0646\u0627\u0645 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL<\/p>\n<p>\u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636\u060c \u0646\u0627\u0645 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0628\u0627 \u0646\u0627\u0645\u200c\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0645\u0637\u0627\u0628\u0642\u062a \u062f\u0627\u0631\u062f TableState \u0646\u0648\u0639\u060c \u0645\u0627\u0646\u0646\u062f globalFilter \u06cc\u0627 sorting.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0646\u0627\u0645 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL\u060c \u0627\u0632 paramNames \u06af\u0632\u06cc\u0646\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u062f\u0648\u0645 useTableSearchParams.<\/p>\n<p>const stateAndOnChanges = useTableSearchParams(router, {<br \/>\n  paramNames: {<br \/>\n    \/\/ Change the URL parameter name<br \/>\n    globalFilter: &#8220;search&#8221;,<br \/>\n  },<br \/>\n});<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u06cc\u06a9 \u067e\u06cc\u0634\u0648\u0646\u062f \u06cc\u0627 \u067e\u0633\u0648\u0646\u062f \u0628\u0647 \u0646\u0627\u0645 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0631\u0627 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>const stateAndOnChanges = useTableSearchParams(router, {<br \/>\n  paramNames: {<br \/>\n    \/\/ Add a prefix to the URL parameter name<br \/>\n    globalFilter: (defaultName) =&gt; `userTable-${defaultName}`,<br \/>\n  },<br \/>\n});<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0641\u0631\u0645\u062a \u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc<\/p>\n<p>\u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634 \u0641\u0631\u0636\u060c \u0641\u0631\u0645\u062a \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u0645\u0642\u0627\u062f\u06cc\u0631 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 URL \u06cc\u06a9 \u0641\u0631\u0645\u062a \u0633\u0627\u062f\u0647 \u0627\u0633\u062a\u060c \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0632\u06cc\u0631 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>\u0627\u0631\u0632\u0634 \u062f\u0648\u0644\u062a\u06cc<br \/>\n\u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0645\u062b\u0627\u0644<\/p>\n<p>\u062c\u0633\u062a\u062c\u0648\u06cc \u062c\u0647\u0627\u0646\u06cc<br \/>\n?globalFilter=John<\/p>\n<p>\u0645\u0631\u062a\u0628 \u0633\u0627\u0632\u06cc<br \/>\n?sorting=name.desc<\/p>\n<p>\u0635\u0641\u062d\u0647 \u0628\u0646\u062f\u06cc<br \/>\n?pageIndex=2&amp;pageSize=20<\/p>\n<p>\u0628\u0631\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0641\u0631\u0645\u062a \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u0641\u0627\u0631\u0634\u06cc \u0631\u0627 \u062a\u0639\u06cc\u06cc\u0646 \u06a9\u0646\u06cc\u062f encoders \u0648 decoders \u062f\u0631 \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u062f\u0648\u0645 \u0627\u0632 useTableSearchParams.<\/p>\n<p>const stateAndOnChanges = useTableSearchParams(router, {<br \/>\n  encoders: {<br \/>\n    \/\/ Change encoding format to use JSON.stringify<br \/>\n    globalFilter: (globalFilter) =&gt; ({<br \/>\n      globalFilter: JSON.stringify(globalFilter),<br \/>\n    }),<br \/>\n  },<br \/>\n  decoders: {<br \/>\n    globalFilter: (query) =&gt;<br \/>\n      query[&#8220;globalFilter&#8221;]\n        ? JSON.parse(query[&#8220;globalFilter&#8221;])<br \/>\n        : (query[&#8220;globalFilter&#8221;] ?? &#8220;&#8221;),<br \/>\n  },<br \/>\n});<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0641\u0631\u0645\u062a \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u0648 \u0646\u0627\u0645 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n<p>const stateAndOnChanges = useTableSearchParams(router, {<br \/>\n  encoders: {<br \/>\n    sorting: (sorting) =&gt; ({<br \/>\n      \/\/ Change encoding format to JSON.stringify and rename parameter to my-sorting<br \/>\n      &#8220;my-sorting&#8221;: JSON.stringify(sorting),<br \/>\n    }),<br \/>\n  },<br \/>\n  decoders: {<br \/>\n    sorting: (query) =&gt;<br \/>\n      query[&#8220;my-sorting&#8221;]\n        ? JSON.parse(query[&#8220;my-sorting&#8221;])<br \/>\n        : query[&#8220;my-sorting&#8221;],<br \/>\n  },<br \/>\n});<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0627\u0646\u062d\u0631\u0627\u0641<\/p>\n<p>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u062d\u0627\u0644\u062a \u0631\u0627 \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0644\u063a\u0648 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>const stateAndOnChanges = useTableSearchParams(router, {<br \/>\n  debounceMilliseconds: 500,<br \/>\n});<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u062a\u0646\u0647\u0627 \u062d\u0627\u0644\u062a\u200c\u0647\u0627\u06cc \u062e\u0627\u0635 \u062c\u062f\u0648\u0644 TanStack \u0631\u0627 \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n<p>const stateAndOnChanges = useTableSearchParams(router, {<br \/>\n  debounceMilliseconds: {<br \/>\n    \/\/ Debounce synchronization of globalFilter with URL parameters by 0.5 seconds<br \/>\n    globalFilter: 500,<br \/>\n  },<br \/>\n});<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0645\u0642\u0627\u062f\u06cc\u0631 \u067e\u06cc\u0634 \u0641\u0631\u0636<\/p>\n<p>\u0648\u0642\u062a\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u0646\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0642\u0627\u062f\u06cc\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0648\u0636\u0639\u06cc\u062a\u200c\u0647\u0627\u06cc \u062c\u062f\u0648\u0644 TanStack \u062a\u0639\u06cc\u06cc\u0646 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0628\u062f\u0648\u0646 \u062a\u0646\u0638\u06cc\u0645 \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0628\u0631\u0627\u06cc \u0645\u0631\u062a\u0628 \u0633\u0627\u0632\u06cc\u060c state.sorting \u0645\u0642\u062f\u0627\u0631 (\u0634\u0631\u0627\u06cc\u0637 \u0645\u0631\u062a\u0628 \u0633\u0627\u0632\u06cc) \u0648 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 URL \u0645\u0631\u0628\u0648\u0637\u0647 \u0628\u0647 \u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u0646\u062f:<\/p>\n<p>state.sorting  \u0627\u0631\u0632\u0634<br \/>\n\u067e\u0627\u0631\u0627\u0645\u062a\u0631 URL<\/p>\n[]\n\u0647\u06cc\u0686 \u06a9\u062f\u0627\u0645<\/p>\n[{ id: &#8220;createdAt&#8221;, desc: true }]\n?sorting=createdAt.desc<\/p>\n[{ id: &#8220;createdAt&#8221;, desc: false }]\n?sorting=createdAt.asc<\/p>\n<p>(\u062a\u0648\u062c\u0647: createdAt \u0646\u0627\u0645 \u0633\u062a\u0648\u0646 \u0627\u0633\u062a.)<\/p>\n<p>\u062f\u0631 \u0645\u0642\u0627\u0628\u0644\u060c \u0627\u06af\u0631 \u062a\u0631\u062a\u06cc\u0628 \u0645\u0631\u062a\u0628\u200c\u0633\u0627\u0632\u06cc \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0631\u0627 \u0645\u0637\u0627\u0628\u0642 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0631\u0648\u06cc \u0646\u0632\u0648\u0644\u06cc \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f:<\/p>\n<p>const stateAndOnChanges = useTableSearchParams(router, {<br \/>\n  defaultValues: {<br \/>\n    sorting: [{ id: &#8220;createdAt&#8221;, desc: true }],<br \/>\n  },<br \/>\n});<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0631\u0627 state.sorting \u0645\u0642\u062f\u0627\u0631 \u0648 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 URL \u0645\u0631\u0628\u0648\u0637\u0647 \u0628\u0647 \u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<p>state.sorting  \u0627\u0631\u0632\u0634<br \/>\n\u067e\u0627\u0631\u0627\u0645\u062a\u0631 URL<\/p>\n[]\n?sorting=none<\/p>\n[{ id: &#8220;createdAt&#8221;, desc: true }]\n\u0647\u06cc\u0686 \u06a9\u062f\u0627\u0645<\/p>\n[{ id: &#8220;createdAt&#8221;, desc: false }]\n?sorting=createdAt.asc<\/p>\n<p>  \u062f\u0631 \u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/p>\n<p>\u0627\u06cc\u0646 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u0632 \u06a9\u0627\u0631 \u0645\u0646 \u0633\u0631\u0686\u0634\u0645\u0647 \u06af\u0631\u0641\u062a\u0647 \u0627\u0633\u062a\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0646 \u0628\u0647 \u06cc\u06a9 \u0631\u0627\u0647 \u0633\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u062d\u0627\u0644\u062a \u0647\u0627\u06cc \u062c\u062f\u0648\u0644 TanStack \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0646\u06cc\u0627\u0632 \u062f\u0627\u0634\u062a\u0645.<\/p>\n<p>\u062a\u0627 \u06a9\u0646\u0648\u0646\u060c \u0645\u0646 \u062a\u0645\u0627\u0645 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0634\u062e\u0635\u0627\u064b \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0634\u062a\u0645\u060c \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0631\u062f\u0647 \u0627\u0645. \u062f\u0631 \u062d\u0631\u06a9\u062a \u0631\u0648 \u0628\u0647 \u062c\u0644\u0648\u060c \u0645\u0646 \u0642\u0635\u062f \u062f\u0627\u0631\u0645 \u0628\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0648\u0636\u0639\u06cc\u062a \u0647\u0627\u06cc TanStack Table \u0628\u06cc\u0634\u062a\u0631 \u0648 \u06af\u0633\u062a\u0631\u0634 \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0633\u0627\u0632\u06cc\u060c \u06a9\u0627\u0645\u0644 \u0628\u0648\u062f\u0646 \u0622\u0646 \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u0645.<\/p>\n<p>\u0636\u0645\u0646\u0627 \u0627\u06cc\u0646 \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0631 \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0628\u0633\u062a\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f\u0645 \u0631\u0627 \u062f\u0631 npm \u0645\u0646\u062a\u0634\u0631 \u0645\u06cc \u06a9\u0646\u0645. \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0646\u062d\u0648\u0647 \u0627\u0646\u062a\u0634\u0627\u0631 \u062f\u0631 npm \u0648 \u06a9\u0634\u0641 \u0631\u0627\u062d\u062a\u06cc \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f tsup \u06cc\u06a9 \u062a\u062c\u0631\u0628\u0647 \u0639\u0627\u0644\u06cc \u0628\u0648\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0634\u0645\u0627 \u0622\u0646 \u0631\u0627 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u06cc\u062f\u060c \u062e\u0648\u0634\u062d\u0627\u0644 \u0645\u06cc \u0634\u0648\u0645! (\u0648 \u0645\u0646 \u062e\u0648\u0634\u062d\u0627\u0644 \u062a\u0631 \u0645\u06cc \u0634\u0648\u0645 \u0627\u06af\u0631 \u0645\u062e\u0632\u0646 \u0631\u0627 \u0633\u062a\u0627\u0631\u0647 \u062f\u0627\u0631 \u06a9\u0646\u06cc\u062f!)<\/p>\n<p>      React Hook \u0628\u0631\u0627\u06cc \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0648\u0636\u0639\u06cc\u062a TanStack Table \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc URL.<\/p>\n<p>React Hook \u0628\u0631\u0627\u06cc \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0648\u0636\u0639\u06cc\u062a TanStack Table \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc URL.<\/p>\n<p>    tanstack-table-search-params.mp4<\/p>\n<p>\ud83d\ude80 \u0634\u0631\u0648\u0639 \u0633\u0631\u06cc\u0639<\/p>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0628\u0633\u062a\u0647 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>npm i tanstack-table-search-params<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u06af\u0631 \u0627\u0632 Next.js (\u0645\u0633\u06cc\u0631\u06cc\u0627\u0628 \u0635\u0641\u062d\u0627\u062a) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0647\u0648\u06a9 \u0628\u0647 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>import { useReactTable } from &#8220;tanstack-table&#8221;;<br \/>\nimport { useRouter } from &#8220;next\/router&#8221;;<br \/>\nimport { useTableSearchParams } from &#8220;tanstack-table-search-params&#8221;;<br \/>\nconst router = useRouter();<\/p>\n<p>\/\/ Get state and onChanges<br \/>\nconst stateAndOnChanges = useTableSearchParams({<br \/>\n  query: router.query,<br \/>\n  pathname: router.pathname,<br \/>\n  replace: router.replace,<br \/>\n  \/\/ or<br \/>\n  push: router.push,<br \/>\n});<\/p>\n<p>const table = useReactTable({<br \/>\n  \/\/ Set state and onChanges<br \/>\n  &#8230;stateAndOnChanges,<br \/>\n  data,<br \/>\n  columns,<br \/>\n  getCoreRowModel: getCoreRowModel(),<br \/>\n  getFilteredRowModel: getFilteredRowModel(),<br \/>\n  getSortedRowModel: getSortedRowModel(),<br \/>\n  \/\/ &#8230; other options\u2026<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<div data-article-id=\"2122347\" id=\"article-body\" wp_automatic_readability=\"245.03432213778\">\n<p>Tanstack Table \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 UI \u0628\u0633\u06cc\u0627\u0631 \u0642\u0627\u0628\u0644 \u062a\u0646\u0638\u06cc\u0645 \u0648 \u0628\u062f\u0648\u0646 \u0647\u062f \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u062c\u062f\u0627\u0648\u0644 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u062f\u0631 \u0686\u0627\u0631\u0686\u0648\u0628 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u0632 \u062c\u0645\u0644\u0647 React\u060c Vue \u0648 Solid \u0627\u0633\u062a.<\/p>\n<p>\u0645\u0646 \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u0645 <code>tanstack-table-search-params<\/code>. \u0627\u06cc\u0646 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0648\u0636\u0639\u06cc\u062a TanStack Table &#8211; \u0645\u0627\u0646\u0646\u062f \u062c\u0633\u062a\u062c\u0648 \u0648 \u0645\u0631\u062a\u0628\u200c\u0633\u0627\u0632\u06cc &#8211; \u0631\u0627 \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc React \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<div class=\"ltag-github-readme-tag\">\n<div class=\"readme-overview\">\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h\/#React_Hook_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%87%D9%85%DA%AF%D8%A7%D9%85_%D8%B3%D8%A7%D8%B2%DB%8C_%D9%88%D8%B6%D8%B9%DB%8C%D8%AA_TanStack_Table_%D8%A8%D8%A7_%D9%BE%D8%A7%D8%B1%D8%A7%D9%85%D8%AA%D8%B1%D9%87%D8%A7%DB%8C_%D8%AC%D8%B3%D8%AA%D8%AC%D9%88%DB%8C_URL\" >React Hook \u0628\u0631\u0627\u06cc \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0648\u0636\u0639\u06cc\u062a TanStack Table \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc URL.<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h\/#%F0%9F%9A%80_%D8%B4%D8%B1%D9%88%D8%B9_%D8%B3%D8%B1%DB%8C%D8%B9\" >\ud83d\ude80 \u0634\u0631\u0648\u0639 \u0633\u0631\u06cc\u0639<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h\/#%D8%AC%D8%AF%D9%88%D9%84_TanStack_%D8%AF%D8%B1_React\" >\u062c\u062f\u0648\u0644 TanStack \u062f\u0631 React<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h\/#%D9%85%D8%B9%D8%B1%D9%81%DB%8C_%DA%A9%D8%B1%D8%AF%D9%86_tanstack-table-search-params\" >\u0645\u0639\u0631\u0641\u06cc \u06a9\u0631\u062f\u0646 tanstack-table-search-params<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h\/#%DA%86%DA%AF%D9%88%D9%86%D9%87_%DA%A9%D8%A7%D8%B1_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF\" >\u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h\/#%D8%A7%DB%8C%D8%A7%D9%84%D8%A7%D8%AA_%D8%AC%D8%AF%D9%88%D9%84_TanStack_%D9%BE%D8%B4%D8%AA%DB%8C%D8%A8%D8%A7%D9%86%DB%8C_%D9%85%DB%8C_%D8%B4%D9%88%D8%AF\" >\u0627\u06cc\u0627\u0644\u0627\u062a \u062c\u062f\u0648\u0644 TanStack \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h\/#%D8%B1%D9%88%D8%AA%D8%B1%D9%87%D8%A7%DB%8C_%D9%BE%D8%B4%D8%AA%DB%8C%D8%A8%D8%A7%D9%86%DB%8C_%D8%B4%D8%AF%D9%87\" >\u0631\u0648\u062a\u0631\u0647\u0627\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0634\u062f\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h\/#%DA%AF%D8%B2%DB%8C%D9%86%D9%87_%D9%87%D8%A7%DB%8C_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%A7%D8%B6%D8%A7%D9%81%DB%8C\" >\u06af\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0633\u0627\u0632\u06cc \u0627\u0636\u0627\u0641\u06cc<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h\/#%D9%86%D8%A7%D9%85_%D9%BE%D8%A7%D8%B1%D8%A7%D9%85%D8%AA%D8%B1%D9%87%D8%A7%DB%8C_URL\" >\u0646\u0627\u0645 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h\/#%D9%81%D8%B1%D9%85%D8%AA_%D9%87%D8%A7%DB%8C_%D8%B1%D9%85%D8%B2%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C\" >\u0641\u0631\u0645\u062a \u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h\/#%D8%A7%D9%86%D8%AD%D8%B1%D8%A7%D9%81\" >\u0627\u0646\u062d\u0631\u0627\u0641<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h\/#%D9%85%D9%82%D8%A7%D8%AF%DB%8C%D8%B1_%D9%BE%DB%8C%D8%B4_%D9%81%D8%B1%D8%B6\" >\u0645\u0642\u0627\u062f\u06cc\u0631 \u067e\u06cc\u0634 \u0641\u0631\u0636<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/nabfollower.com\/blog\/building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h\/#%D8%AF%D8%B1_%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\" >\u062f\u0631 \u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/nabfollower.com\/blog\/building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h\/#React_Hook_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%87%D9%85%DA%AF%D8%A7%D9%85_%D8%B3%D8%A7%D8%B2%DB%8C_%D9%88%D8%B6%D8%B9%DB%8C%D8%AA_TanStack_Table_%D8%A8%D8%A7_%D9%BE%D8%A7%D8%B1%D8%A7%D9%85%D8%AA%D8%B1%D9%87%D8%A7%DB%8C_%D8%AC%D8%B3%D8%AA%D8%AC%D9%88%DB%8C_URL-2\" >React Hook \u0628\u0631\u0627\u06cc \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0648\u0636\u0639\u06cc\u062a TanStack Table \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc URL.<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/nabfollower.com\/blog\/building-a-library-to-sync-tanstack-table-state-with-url-parameters-1d0h\/#%F0%9F%9A%80_%D8%B4%D8%B1%D9%88%D8%B9_%D8%B3%D8%B1%DB%8C%D8%B9-2\" >\ud83d\ude80 \u0634\u0631\u0648\u0639 \u0633\u0631\u06cc\u0639<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"React_Hook_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%87%D9%85%DA%AF%D8%A7%D9%85_%D8%B3%D8%A7%D8%B2%DB%8C_%D9%88%D8%B6%D8%B9%DB%8C%D8%AA_TanStack_Table_%D8%A8%D8%A7_%D9%BE%D8%A7%D8%B1%D8%A7%D9%85%D8%AA%D8%B1%D9%87%D8%A7%DB%8C_%D8%AC%D8%B3%D8%AA%D8%AC%D9%88%DB%8C_URL\"><\/span>\n<p>      React Hook \u0628\u0631\u0627\u06cc \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0648\u0636\u0639\u06cc\u062a TanStack Table \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc URL.<br \/>\n    <span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/p><\/div>\n<div class=\"ltag-github-body\">\n<div id=\"readme\" class=\"md\" data-path=\"README.md\" wp_automatic_readability=\"10.350457782299\">\n<article class=\"markdown-body entry-content container-lg\" itemprop=\"text\" wp_automatic_readability=\"43.866225839268\">\n<p dir=\"auto\">React Hook \u0628\u0631\u0627\u06cc \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0648\u0636\u0639\u06cc\u062a TanStack Table \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc URL.<\/p>\n<details open=\"\" class=\"details-reset border rounded-2\">\n<summary class=\"px-3 py-2\">\n    <svg aria-hidden=\"true\" height=\"16\" viewbox=\"0 0 16 16\" version=\"1.1\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-device-camera-video\">\n<\/svg><br \/>\n    <span aria-label=\"Video description tanstack-table-search-params.mp4\" class=\"m-1\">tanstack-table-search-params.mp4<\/span><br \/>\n  <\/summary>\n<p>  <video src=\"https:\/\/private-user-images.githubusercontent.com\/66539019\/357005312-1f1b4a65-fdec-4a80-a5d5-783642befaa3.mp4?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzI3MTYzNzEsIm5iZiI6MTczMjcxNjA3MSwicGF0aCI6Ii82NjUzOTAxOS8zNTcwMDUzMTItMWYxYjRhNjUtZmRlYy00YTgwLWE1ZDUtNzgzNjQyYmVmYWEzLm1wND9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDExMjclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMTI3VDE0MDExMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMyNTA2MTIxMzZkYWUxYzY0ZGRhY2JhOWIyOTAzNTgwYmQyODc0YzgzZDBkODlkZjc1NTkzYTQ4ZjZlZGVhYTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.V1EaTXEmpcnQeepS8fV44yjJoaGMpRlsxEkjzZ4AFtM\" data-canonical-src=\"https:\/\/private-user-images.githubusercontent.com\/66539019\/357005312-1f1b4a65-fdec-4a80-a5d5-783642befaa3.mp4?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzI3MTYzNzEsIm5iZiI6MTczMjcxNjA3MSwicGF0aCI6Ii82NjUzOTAxOS8zNTcwMDUzMTItMWYxYjRhNjUtZmRlYy00YTgwLWE1ZDUtNzgzNjQyYmVmYWEzLm1wND9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDExMjclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMTI3VDE0MDExMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMyNTA2MTIxMzZkYWUxYzY0ZGRhY2JhOWIyOTAzNTgwYmQyODc0YzgzZDBkODlkZjc1NTkzYTQ4ZjZlZGVhYTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.V1EaTXEmpcnQeepS8fV44yjJoaGMpRlsxEkjzZ4AFtM\" controls=\"controls\" muted=\"muted\" class=\"d-block rounded-bottom-2 border-top width-fit\" style=\"max-height:640px; min-height: 200px\"><\/p>\n<p>  <\/video><br \/>\n<\/details>\n<h2 class=\"heading-element\" dir=\"auto\"><span class=\"ez-toc-section\" id=\"%F0%9F%9A%80_%D8%B4%D8%B1%D9%88%D8%B9_%D8%B3%D8%B1%DB%8C%D8%B9\"><\/span>\ud83d\ude80 \u0634\u0631\u0648\u0639 \u0633\u0631\u06cc\u0639<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p dir=\"auto\">\u0627\u0628\u062a\u062f\u0627 \u0628\u0633\u062a\u0647 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight\" dir=\"auto\" data-snippet-clipboard-copy-content=\"npm i tanstack-table-search-params\" wp_automatic_readability=\"7\">\n<pre>npm i tanstack-table-search-params<\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p dir=\"auto\">\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u06af\u0631 \u0627\u0632 Next.js (\u0645\u0633\u06cc\u0631\u06cc\u0627\u0628 \u0635\u0641\u062d\u0627\u062a) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0647\u0648\u06a9 \u0628\u0647 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight highlight-source-tsx notranslate position-relative overflow-auto js-code-highlight\" dir=\"auto\" data-snippet-clipboard-copy-content=\"import { useReactTable } from \" tanstack-table=\"\" import=\"\" userouter=\"\" from=\"\" usetablesearchparams=\"\" const=\"\" router=\"useRouter();\" get=\"\" state=\"\" and=\"\" onchanges=\"\" stateandonchanges=\"useTableSearchParams({\" query:=\"\" router.query=\"\" pathname:=\"\" router.pathname=\"\" replace:=\"\" router.replace=\"\" or=\"\" push:=\"\" router.push=\"\" table=\"useReactTable({\" set=\"\" ...stateandonchanges=\"\" data=\"\" columns=\"\" getcorerowmodel:=\"\" getcorerowmodel=\"\" getfilteredrowmodel:=\"\" getfilteredrowmodel=\"\" getsortedrowmodel:=\"\" getsortedrowmodel=\"\" ...=\"\" other=\"\" options=\"\" wp_automatic_readability=\"20\">\n<pre><span class=\"pl-k\">import<\/span> <span class=\"pl-kos\">{<\/span> <span class=\"pl-s1\">useReactTable<\/span> <span class=\"pl-kos\">}<\/span> <span class=\"pl-k\">from<\/span> <span class=\"pl-s\">\"tanstack-table\"<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-k\">import<\/span> <span class=\"pl-kos\">{<\/span> <span class=\"pl-s1\">useRouter<\/span> <span class=\"pl-kos\">}<\/span> <span class=\"pl-k\">from<\/span> <span class=\"pl-s\">\"next\/router\"<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-k\">import<\/span> <span class=\"pl-kos\">{<\/span> <span class=\"pl-s1\">useTableSearchParams<\/span> <span class=\"pl-kos\">}<\/span> <span class=\"pl-k\">from<\/span> <span class=\"pl-s\">\"tanstack-table-search-params\"<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-k\">const<\/span> <span class=\"pl-s1\">router<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-en\">useRouter<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span>\n\n<span class=\"pl-c\">\/\/ Get state and onChanges<\/span>\n<span class=\"pl-k\">const<\/span> <span class=\"pl-s1\">stateAndOnChanges<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-en\">useTableSearchParams<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">{<\/span>\n  <span class=\"pl-c1\">query<\/span>: <span class=\"pl-s1\">router<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">query<\/span><span class=\"pl-kos\">,<\/span>\n  <span class=\"pl-c1\">pathname<\/span>: <span class=\"pl-s1\">router<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">pathname<\/span><span class=\"pl-kos\">,<\/span>\n  <span class=\"pl-c1\">replace<\/span>: <span class=\"pl-s1\">router<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">replace<\/span><span class=\"pl-kos\">,<\/span>\n  <span class=\"pl-c\">\/\/ or<\/span>\n  <span class=\"pl-c1\">push<\/span>: <span class=\"pl-s1\">router<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">push<\/span><span class=\"pl-kos\">,<\/span>\n<span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span>\n\n<span class=\"pl-k\">const<\/span> <span class=\"pl-s1\">table<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-en\">useReactTable<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">{<\/span>\n  <span class=\"pl-c\">\/\/ Set state and onChanges<\/span>\n  ...<span class=\"pl-s1\">stateAndOnChanges<\/span><span class=\"pl-kos\">,<\/span>\n  data<span class=\"pl-kos\">,<\/span>\n  columns<span class=\"pl-kos\">,<\/span>\n  <span class=\"pl-c1\">getCoreRowModel<\/span>: <span class=\"pl-en\">getCoreRowModel<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">,<\/span>\n  <span class=\"pl-c1\">getFilteredRowModel<\/span>: <span class=\"pl-en\">getFilteredRowModel<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">,<\/span>\n  <span class=\"pl-c1\">getSortedRowModel<\/span>: <span class=\"pl-en\">getSortedRowModel<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">,<\/span>\n  <span class=\"pl-c\">\/\/ ... other options<\/span><\/pre>\n<p>\u2026<\/p>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div><\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AC%D8%AF%D9%88%D9%84_TanStack_%D8%AF%D8%B1_React\"><\/span>\n<p>  \u062c\u062f\u0648\u0644 TanStack \u062f\u0631 React<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0645\u0642\u062f\u0645\u0647 \u0633\u0631\u06cc\u0639 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u062c\u062f\u0627\u0648\u0644 \u0628\u0627 TanStack Table \u062f\u0631 React \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>TanStack Table \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f <code>useReactTable<\/code> \u0642\u0644\u0627\u0628\u060c \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u062a\u0639\u0627\u0631\u06cc\u0641 \u0633\u062a\u0648\u0646 \u0631\u0627 \u0645\u06cc \u06af\u06cc\u0631\u062f. \u0648\u0636\u0639\u06cc\u062a \u062c\u062f\u0648\u0644 \u0648 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0647\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u0631\u0646\u062f\u0631 \u062c\u062f\u0648\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\" wp_automatic_readability=\"28\">\n<pre class=\"highlight tsx\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">createColumnHelper<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">flexRender<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">getCoreRowModel<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">useReactTable<\/span><span class=\"p\">,<\/span>\n<span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">@tanstack\/react-table<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">type<\/span> <span class=\"nx\">User<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">;<\/span> <span class=\"nl\">name<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span> <span class=\"p\">};<\/span>\n\n<span class=\"c1\">\/\/ Sample data<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">data<\/span><span class=\"p\">:<\/span> <span class=\"nx\">User<\/span><span class=\"p\">[]<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\n  <span class=\"p\">{<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">1<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">John<\/span><span class=\"dl\">\"<\/span> <span class=\"p\">},<\/span>\n  <span class=\"p\">{<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">2<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Sara<\/span><span class=\"dl\">\"<\/span> <span class=\"p\">},<\/span>\n<span class=\"p\">];<\/span>\n\n<span class=\"c1\">\/\/ Column definitions<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">columnHelper<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">createColumnHelper<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">User<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">();<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">columns<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\n  <span class=\"nx\">columnHelper<\/span><span class=\"p\">.<\/span><span class=\"nf\">accessor<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">id<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"p\">{}),<\/span>\n  <span class=\"nx\">columnHelper<\/span><span class=\"p\">.<\/span><span class=\"nf\">accessor<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">name<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"p\">{}),<\/span>\n<span class=\"p\">];<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">UserTable<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"c1\">\/\/ Create table<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">table<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useReactTable<\/span><span class=\"p\">({<\/span>\n    <span class=\"nx\">data<\/span><span class=\"p\">,<\/span>\n    <span class=\"nx\">columns<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">getCoreRowModel<\/span><span class=\"p\">:<\/span> <span class=\"nf\">getCoreRowModel<\/span><span class=\"p\">(),<\/span>\n  <span class=\"p\">});<\/span>\n\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">table<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\">thead<\/span><span class=\"p\">&gt;<\/span>\n          <span class=\"p\">&lt;<\/span><span class=\"nt\">tr<\/span><span class=\"p\">&gt;<\/span>\n            <span class=\"si\">{<\/span><span class=\"nx\">table<\/span><span class=\"p\">.<\/span><span class=\"nf\">getFlatHeaders<\/span><span class=\"p\">().<\/span><span class=\"nf\">map<\/span><span class=\"p\">((<\/span><span class=\"nx\">header<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">(<\/span>\n              <span class=\"p\">&lt;<\/span><span class=\"nt\">th<\/span> <span class=\"na\">key<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"nx\">header<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"si\">}<\/span><span class=\"p\">&gt;<\/span>\n                <span class=\"si\">{<\/span><span class=\"nf\">flexRender<\/span><span class=\"p\">(<\/span>\n                  <span class=\"nx\">header<\/span><span class=\"p\">.<\/span><span class=\"nx\">column<\/span><span class=\"p\">.<\/span><span class=\"nx\">columnDef<\/span><span class=\"p\">.<\/span><span class=\"nx\">header<\/span><span class=\"p\">,<\/span>\n                  <span class=\"nx\">header<\/span><span class=\"p\">.<\/span><span class=\"nf\">getContext<\/span><span class=\"p\">(),<\/span>\n                <span class=\"p\">)<\/span><span class=\"si\">}<\/span>\n              <span class=\"p\"\/><span class=\"nt\">th<\/span><span class=\"p\">&gt;<\/span>\n            <span class=\"p\">))<\/span><span class=\"si\">}<\/span>\n          <span class=\"p\"\/><span class=\"nt\">tr<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\"\/><span class=\"nt\">thead<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\">tbody<\/span><span class=\"p\">&gt;<\/span>\n          <span class=\"si\">{<\/span><span class=\"cm\">\/* Render table rows *\/<\/span><span class=\"si\">}<\/span>\n          <span class=\"si\">{<\/span><span class=\"nx\">table<\/span><span class=\"p\">.<\/span><span class=\"nf\">getRowModel<\/span><span class=\"p\">().<\/span><span class=\"nx\">rows<\/span><span class=\"p\">.<\/span><span class=\"nf\">map<\/span><span class=\"p\">((<\/span><span class=\"nx\">row<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">(<\/span>\n            <span class=\"p\">&lt;<\/span><span class=\"nt\">tr<\/span> <span class=\"na\">key<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"nx\">row<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"si\">}<\/span><span class=\"p\">&gt;<\/span>\n              <span class=\"si\">{<\/span><span class=\"nx\">row<\/span><span class=\"p\">.<\/span><span class=\"nf\">getAllCells<\/span><span class=\"p\">().<\/span><span class=\"nf\">map<\/span><span class=\"p\">((<\/span><span class=\"nx\">cell<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">(<\/span>\n                <span class=\"p\">&lt;<\/span><span class=\"nt\">td<\/span> <span class=\"na\">key<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"nx\">cell<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"si\">}<\/span><span class=\"p\">&gt;<\/span>\n                  <span class=\"si\">{<\/span><span class=\"nf\">flexRender<\/span><span class=\"p\">(<\/span><span class=\"nx\">cell<\/span><span class=\"p\">.<\/span><span class=\"nx\">column<\/span><span class=\"p\">.<\/span><span class=\"nx\">columnDef<\/span><span class=\"p\">.<\/span><span class=\"nx\">cell<\/span><span class=\"p\">,<\/span> <span class=\"nx\">cell<\/span><span class=\"p\">.<\/span><span class=\"nf\">getContext<\/span><span class=\"p\">())<\/span><span class=\"si\">}<\/span>\n                <span class=\"p\"\/><span class=\"nt\">td<\/span><span class=\"p\">&gt;<\/span>\n              <span class=\"p\">))<\/span><span class=\"si\">}<\/span>\n            <span class=\"p\"\/><span class=\"nt\">tr<\/span><span class=\"p\">&gt;<\/span>\n          <span class=\"p\">))<\/span><span class=\"si\">}<\/span>\n        <span class=\"p\"\/><span class=\"nt\">tbody<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\"\/><span class=\"nt\">table<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\"\/><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u062c\u062f\u0648\u0644 \u062d\u0627\u0635\u0644 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p><\/p>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0645\u0646 \u06cc\u06a9 \u0648\u06cc\u0698\u06af\u06cc \u062c\u0633\u062a\u062c\u0648 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u062c\u062f\u0648\u0644 \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f\u0645\u060c \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0632\u06cc\u0631 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<div class=\"highlight js-code-highlight\" wp_automatic_readability=\"15\">\n<pre class=\"highlight tsx\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span>\n  <span class=\"c1\">\/\/ ...<\/span>\n<span class=\"o\">+<\/span> <span class=\"nx\">getFilteredRowModel<\/span><span class=\"p\">,<\/span>\n<span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">@tanstack\/react-table<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">UserTable<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">table<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useReactTable<\/span><span class=\"p\">({<\/span>\n    <span class=\"nx\">data<\/span><span class=\"p\">,<\/span>\n    <span class=\"nx\">columns<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">getCoreRowModel<\/span><span class=\"p\">:<\/span> <span class=\"nf\">getCoreRowModel<\/span><span class=\"p\">(),<\/span>\n<span class=\"o\">+<\/span>   <span class=\"na\">getFilteredRowModel<\/span><span class=\"p\">:<\/span> <span class=\"nf\">getFilteredRowModel<\/span><span class=\"p\">(),<\/span>\n  <span class=\"p\">});<\/span>\n\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n+     <span class=\"p\">&lt;<\/span><span class=\"nt\">input<\/span>\n<span class=\"err\">+<\/span>       <span class=\"na\">placeholder<\/span><span class=\"p\">=<\/span><span class=\"s\">\"Search...\"<\/span>\n<span class=\"err\">+<\/span>       <span class=\"na\">value<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"nx\">table<\/span><span class=\"p\">.<\/span><span class=\"nf\">getState<\/span><span class=\"p\">().<\/span><span class=\"nx\">globalFilter<\/span><span class=\"si\">}<\/span>\n<span class=\"err\">+<\/span>       <span class=\"na\">onChange<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">table<\/span><span class=\"p\">.<\/span><span class=\"nf\">setGlobalFilter<\/span><span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">.<\/span><span class=\"nx\">target<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span><span class=\"p\">)<\/span><span class=\"si\">}<\/span>\n<span class=\"err\">+<\/span>     <span class=\"p\">\/&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">table<\/span><span class=\"p\">&gt;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062c\u062f\u0648\u0644 \u0627\u06a9\u0646\u0648\u0646 \u0627\u0632 \u0639\u0645\u0644\u06a9\u0631\u062f \u062c\u0633\u062a\u062c\u0648\u06cc \u0627\u0648\u0644\u06cc\u0647 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft3cdc01wa83c9eif7kp2.png\" alt=\"\u062c\u062f\u0648\u0644 \u0628\u0627 \u062c\u0633\u062a\u062c\u0648\" loading=\"lazy\" width=\"384\" height=\"192\" title=\"\"><\/p>\n<p>\u0627\u06cc\u0646\u062c\u0627\u060c <code>getCoreRowModel<\/code> \u0648 <code>getFilteredRowModel<\/code> \u062a\u0648\u0627\u0628\u0639\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u062c\u062f\u0648\u0644 \u0645\u062e\u062a\u0644\u0641\u06cc \u0628\u0647 \u0646\u0627\u0645 RowModels \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0645\u06cc \u06a9\u0646\u0646\u062f. \u062f\u0631 TanStack Table\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 RowModel \u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>getFilteredRowModel<\/code>\u060c \u06cc\u0627 RowModel \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627 \u0631\u0627 \u06af\u0633\u062a\u0631\u0634 \u062f\u0647\u06cc\u062f\u060c \u0645\u0627\u0646\u0646\u062f \u0627\u0641\u0632\u0648\u062f\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648 \u06cc\u0627 \u0645\u0631\u062a\u0628 \u0633\u0627\u0632\u06cc \u0628\u0647 \u062c\u062f\u0648\u0644 \u062e\u0648\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B9%D8%B1%D9%81%DB%8C_%DA%A9%D8%B1%D8%AF%D9%86_tanstack-table-search-params\"><\/span>\n<p>  \u0645\u0639\u0631\u0641\u06cc \u06a9\u0631\u062f\u0646 <code>tanstack-table-search-params<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><code>tanstack-table-search-params<\/code>  \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0648\u0636\u0639\u06cc\u062a \u062c\u062f\u0648\u0644 TanStack \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0631\u0627 \u0633\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 Next.js Pages Router\u060c \u0641\u0642\u0637 \u0628\u0627\u06cc\u062f:<\/p>\n<ol>\n<li>\u0648\u0627\u0631\u062f\u0627\u062a \u0648 \u062a\u0645\u0627\u0633 <code>useTableSearchParams<\/code>\u060c \u0639\u0628\u0648\u0631 \u0627\u0632 <code>useRouter<\/code> \u0634\u06cc<\/li>\n<li>\u0645\u0642\u062f\u0627\u0631 \u0628\u0631\u06af\u0634\u062a\u06cc \u0642\u0644\u0627\u0628 \u0631\u0627 \u0628\u0647 <code>useReactTable<\/code>.\n<\/li>\n<\/ol>\n<div class=\"highlight js-code-highlight\" wp_automatic_readability=\"11\">\n<pre class=\"highlight tsx\"><code><span class=\"o\">+<\/span> <span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useRouter<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">next\/router<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"o\">+<\/span> <span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useTableSearchParams<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">tanstack-table-search-params<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ ...<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">UserTable<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n<span class=\"o\">+<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">router<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useRouter<\/span><span class=\"p\">();<\/span>\n<span class=\"o\">+<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">stateAndOnChanges<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useTableSearchParams<\/span><span class=\"p\">(<\/span><span class=\"nx\">router<\/span><span class=\"p\">);<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">table<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useReactTable<\/span><span class=\"p\">({<\/span>\n<span class=\"o\">+<\/span>   <span class=\"p\">...<\/span><span class=\"nx\">stateAndOnChanges<\/span><span class=\"p\">,<\/span>\n    <span class=\"c1\">\/\/ ...<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0646\u062a\u06cc\u062c\u0647:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx38mnp7hhtmozound6wr.png\" alt=\"\u062c\u062f\u0648\u0644 \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\" loading=\"lazy\" width=\"800\" height=\"257\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%DA%86%DA%AF%D9%88%D9%86%D9%87_%DA%A9%D8%A7%D8%B1_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF\"><\/span>\n<p>  \u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u062a\u0648\u0636\u06cc\u062d \u0686\u06af\u0648\u0646\u06af\u06cc <code>tanstack-table-search-params<\/code> \u0648\u0636\u0639\u06cc\u062a \u062c\u062f\u0648\u0644 TanStack \u0631\u0627 \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0647\u0645\u06af\u0627\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0645\u0627 \u06a9\u062f \u0628\u0627\u0644\u0627 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u062a\u0627 \u0641\u0642\u0637 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0631\u0627 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u062f\u060c \u0628\u0647 \u062c\u0627\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u06a9\u0644 \u0622\u0646 \u0631\u0627 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u0645. <code>router<\/code> \u0634\u06cc \u0648 <code>stateAndOnChanges<\/code> \u0634\u06cc<\/p>\n<div class=\"highlight js-code-highlight\" wp_automatic_readability=\"18\">\n<pre class=\"highlight tsx\"><code><span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">UserTable<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">query<\/span><span class=\"p\">,<\/span> <span class=\"nx\">pathname<\/span><span class=\"p\">,<\/span> <span class=\"nx\">replace<\/span><span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useRouter<\/span><span class=\"p\">();<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">stateAndOnChanges<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useTableSearchParams<\/span><span class=\"p\">({<\/span>\n    <span class=\"na\">query<\/span><span class=\"p\">:<\/span> <span class=\"nx\">router<\/span><span class=\"p\">.<\/span><span class=\"nx\">query<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">pathname<\/span><span class=\"p\">:<\/span> <span class=\"nx\">router<\/span><span class=\"p\">.<\/span><span class=\"nx\">pathname<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">replace<\/span><span class=\"p\">:<\/span> <span class=\"nx\">router<\/span><span class=\"p\">.<\/span><span class=\"nx\">replace<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">});<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">table<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useReactTable<\/span><span class=\"p\">({<\/span>\n    <span class=\"na\">state<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n        <span class=\"na\">globalFilter<\/span><span class=\"p\">:<\/span> <span class=\"nx\">stateAndOnChanges<\/span><span class=\"p\">.<\/span><span class=\"nx\">state<\/span><span class=\"p\">.<\/span><span class=\"nx\">globalFilter<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">},<\/span>\n    <span class=\"na\">onGlobalFilterChange<\/span><span class=\"p\">:<\/span> <span class=\"nx\">stateAndOnChanges<\/span><span class=\"p\">.<\/span><span class=\"nx\">onGlobalFilterChange<\/span><span class=\"p\">,<\/span>\n    <span class=\"c1\">\/\/ ...<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0644\u06cc\u0644 \u0639\u0628\u0648\u0631 <code>state.globalFilter<\/code> \u0648 <code>onGlobalFilterChange<\/code> \u0628\u0647 <code>useReactTable<\/code> \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u062c\u062f\u0648\u0644 TanStack \u062f\u0631 \u062e\u0627\u0631\u062c \u0627\u0632 <code>useReactTable<\/code>.<\/p>\n<p>https:\/\/tanstack.com\/table\/latest\/docs\/guide\/global-filtering#global-filter-state<\/p>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u06a9\u062f \u0628\u0627\u0644\u0627 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c <code>useTableSearchParams<\/code> \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0645\u06cc \u06af\u06cc\u0631\u062f:<\/p>\n<ul>\n<li>\n<code>query<\/code>: \u0648\u0636\u0639\u06cc\u062a React \u0628\u0631\u0627\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL<\/li>\n<li>\n<code>pathname<\/code>: \u0645\u0633\u06cc\u0631 URL \u0641\u0639\u0644\u06cc<\/li>\n<li>\n<code>replace<\/code>  (\u06cc\u0627 <code>push<\/code>): \u062a\u0627\u0628\u0639\u06cc \u0628\u0631\u0627\u06cc \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u06cc (\u06cc\u0627 \u0641\u0634\u0627\u0631 \u062f\u0627\u062f\u0646) URL<\/li>\n<\/ul>\n<p>https:\/\/github.com\/taro-28\/tanstack-table-search-params\/blob\/main\/packages\/tanstack-table-search-params\/src\/index.ts#L123-L151<\/p>\n<p>\u0648 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f:<\/p>\n<ul>\n<li><code>state.globalFilter<\/code><\/li>\n<li><code>onGlobalFilterChange<\/code><\/li>\n<\/ul>\n<p>https:\/\/github.com\/taro-28\/tanstack-table-search-params\/blob\/main\/packages\/tanstack-table-search-params\/src\/index.ts#L23-L44<\/p>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0627\u0632 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0647\u0627 \u0648 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0628\u0627\u0632\u06af\u0634\u062a\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u0635\u0648\u0631 \u06a9\u0646\u06cc\u062f\u060c \u0627\u06cc\u0646 \u0642\u0644\u0627\u0628 \u0627\u0632 \u0646\u0638\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0633\u06cc\u0627\u0631 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0627\u0648\u0644\u060c <code>state<\/code> \u0631\u0645\u0632\u06af\u0634\u0627\u06cc\u06cc \u0645\u06cc \u06a9\u0646\u062f <code>query<\/code> \u062f\u0631 \u062c\u062f\u0648\u0644 TanStack \u0632\u06cc\u0631 <code>TableState<\/code> \u062a\u0627\u06cc\u067e \u06a9\u0631\u062f\u0647 \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f:<\/p>\n<p>\u0628\u0639\u062f\u060c <code>onGlobalFilterChange<\/code> \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u062a\u0627\u0628\u0639\u06cc \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f \u06a9\u0647 \u0647\u0631 \u0642\u0633\u0645\u062a \u0627\u0632 \u0648\u0636\u0639\u06cc\u062a \u062c\u062f\u0648\u0644 TanStack \u0631\u0627 \u062f\u0631 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f. <code>replace<\/code>.<\/p>\n<p>\u0647\u0631 \u062f\u0648 \u0641\u0631\u0622\u06cc\u0646\u062f \u0627\u06cc\u062c\u0627\u062f <code>state<\/code> \u0648 <code>onGlobalFilterChange<\/code> \u0635\u0631\u0641\u0627\u064b \u062a\u0628\u062f\u06cc\u0644 \u0647\u0633\u062a\u0646\u062f (\u0634\u06cc \u2192 \u0634\u06cc\u060c \u062a\u0627\u0628\u0639 \u2192 \u062a\u0627\u0628\u0639)\u060c \u0648 \u0647\u06cc\u0686 \u06cc\u06a9 \u0627\u0632 \u0622\u0646\u0647\u0627 \u062d\u0627\u0644\u062a \u062f\u0627\u062e\u0644\u06cc \u0646\u062f\u0627\u0631\u0646\u062f. (\u062a\u0646\u0647\u0627 \u0627\u0633\u062a\u062b\u0646\u0627 \u0628\u0631\u0627\u06cc debouncing \u0627\u0633\u062a \u06a9\u0647 \u0628\u0639\u062f\u0627\u064b \u0645\u0648\u0631\u062f \u0628\u062d\u062b \u0642\u0631\u0627\u0631 \u062e\u0648\u0627\u0647\u062f \u06af\u0631\u0641\u062a\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u062d\u0627\u0644\u062a \u062f\u0627\u062e\u0644\u06cc \u0628\u0631\u0627\u06cc \u0627\u0647\u062f\u0627\u0641 debounce \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.)<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%DB%8C%D8%A7%D9%84%D8%A7%D8%AA_%D8%AC%D8%AF%D9%88%D9%84_TanStack_%D9%BE%D8%B4%D8%AA%DB%8C%D8%A8%D8%A7%D9%86%DB%8C_%D9%85%DB%8C_%D8%B4%D9%88%D8%AF\"><\/span>\n<p>  \u0627\u06cc\u0627\u0644\u0627\u062a \u062c\u062f\u0648\u0644 TanStack \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631\u060c \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u0632 \u0686\u0647\u0627\u0631 \u062d\u0627\u0644\u062a \u062c\u062f\u0648\u0644 TanStack \u0632\u06cc\u0631 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u06af\u0633\u062a\u0631\u0634 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u062f\u0631 \u0622\u06cc\u0646\u062f\u0647 \u062f\u0627\u0631\u062f:<\/p>\n<ul>\n<li><code>globalFilter<\/code><\/li>\n<li><code>sorting<\/code><\/li>\n<li><code>pagination<\/code><\/li>\n<li><code>columnFilters<\/code><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B1%D9%88%D8%AA%D8%B1%D9%87%D8%A7%DB%8C_%D9%BE%D8%B4%D8%AA%DB%8C%D8%A8%D8%A7%D9%86%DB%8C_%D8%B4%D8%AF%D9%87\"><\/span>\n<p>  \u0631\u0648\u062a\u0631\u0647\u0627\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0634\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f\u060c <code>tanstack-table-search-params<\/code> \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u062d\u0627\u0644\u062a React \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0631\u0627 \u0628\u0647 \u0648\u0636\u0639\u06cc\u062a TanStack Table \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0628\u062f\u0627\u0646 \u0645\u0639\u0646\u0627\u0633\u062a \u06a9\u0647 \u0628\u0627\u06cc\u062f (\u0627\u062d\u062a\u0645\u0627\u0644\u0627) \u0628\u0627 \u0647\u0631 \u0631\u0648\u062a\u0631\u06cc \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0648\u0636\u0639\u06cc\u062a React \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0646\u06cc\u062f\u060c \u06a9\u0627\u0631 \u06a9\u0646\u062f.<\/p>\n<p>\u0646\u0645\u0648\u0646\u0647 \u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0633\u0647 \u0631\u0648\u062a\u0631 \u0632\u06cc\u0631 \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a. \u0628\u0627 \u062e\u06cc\u0627\u0644 \u0631\u0627\u062d\u062a \u0622\u0646\u0647\u0627 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%DA%AF%D8%B2%DB%8C%D9%86%D9%87_%D9%87%D8%A7%DB%8C_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%A7%D8%B6%D8%A7%D9%81%DB%8C\"><\/span>\n<p>  \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0633\u0627\u0632\u06cc \u0627\u0636\u0627\u0641\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0627 <code>tanstack-table-search-params<\/code>\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0646\u0627\u0645 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0648 \u0641\u0631\u0645\u062a \u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u0648 \u063a\u06cc\u0631\u0647 \u0631\u0627 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%86%D8%A7%D9%85_%D9%BE%D8%A7%D8%B1%D8%A7%D9%85%D8%AA%D8%B1%D9%87%D8%A7%DB%8C_URL\"><\/span>\n<p>  \u0646\u0627\u0645 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636\u060c \u0646\u0627\u0645 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0628\u0627 \u0646\u0627\u0645\u200c\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0645\u0637\u0627\u0628\u0642\u062a \u062f\u0627\u0631\u062f <code>TableState<\/code> \u0646\u0648\u0639\u060c \u0645\u0627\u0646\u0646\u062f <code>globalFilter<\/code> \u06cc\u0627 <code>sorting<\/code>.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0646\u0627\u0645 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL\u060c \u0627\u0632 <code>paramNames<\/code> \u06af\u0632\u06cc\u0646\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u062f\u0648\u0645 <code>useTableSearchParams<\/code>.<\/p>\n<div class=\"highlight js-code-highlight\" wp_automatic_readability=\"11\">\n<pre class=\"highlight tsx\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">stateAndOnChanges<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useTableSearchParams<\/span><span class=\"p\">(<\/span><span class=\"nx\">router<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">paramNames<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ Change the URL parameter name<\/span>\n    <span class=\"na\">globalFilter<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">search<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">},<\/span>\n<span class=\"p\">});<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u06cc\u06a9 \u067e\u06cc\u0634\u0648\u0646\u062f \u06cc\u0627 \u067e\u0633\u0648\u0646\u062f \u0628\u0647 \u0646\u0627\u0645 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0631\u0627 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\" wp_automatic_readability=\"11\">\n<pre class=\"highlight tsx\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">stateAndOnChanges<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useTableSearchParams<\/span><span class=\"p\">(<\/span><span class=\"nx\">router<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">paramNames<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ Add a prefix to the URL parameter name<\/span>\n    <span class=\"na\">globalFilter<\/span><span class=\"p\">:<\/span> <span class=\"p\">(<\/span><span class=\"nx\">defaultName<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">`userTable-<\/span><span class=\"p\">${<\/span><span class=\"nx\">defaultName<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">},<\/span>\n<span class=\"p\">});<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%81%D8%B1%D9%85%D8%AA_%D9%87%D8%A7%DB%8C_%D8%B1%D9%85%D8%B2%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C\"><\/span>\n<p>  \u0641\u0631\u0645\u062a \u0647\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634 \u0641\u0631\u0636\u060c \u0641\u0631\u0645\u062a \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u0645\u0642\u0627\u062f\u06cc\u0631 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 URL \u06cc\u06a9 \u0641\u0631\u0645\u062a \u0633\u0627\u062f\u0647 \u0627\u0633\u062a\u060c \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0632\u06cc\u0631 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"table-wrapper-paragraph\">\n<table>\n<thead>\n<tr>\n<th>\u0627\u0631\u0632\u0634 \u062f\u0648\u0644\u062a\u06cc<\/th>\n<th>\u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0645\u062b\u0627\u0644<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u062c\u0633\u062a\u062c\u0648\u06cc \u062c\u0647\u0627\u0646\u06cc<\/td>\n<td><code>?globalFilter=John<\/code><\/td>\n<\/tr>\n<tr>\n<td>\u0645\u0631\u062a\u0628 \u0633\u0627\u0632\u06cc<\/td>\n<td><code>?sorting=name.desc<\/code><\/td>\n<\/tr>\n<tr>\n<td>\u0635\u0641\u062d\u0647 \u0628\u0646\u062f\u06cc<\/td>\n<td><code>?pageIndex=2&amp;pageSize=20<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0641\u0631\u0645\u062a \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u0641\u0627\u0631\u0634\u06cc \u0631\u0627 \u062a\u0639\u06cc\u06cc\u0646 \u06a9\u0646\u06cc\u062f <code>encoders<\/code> \u0648 <code>decoders<\/code> \u062f\u0631 \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u062f\u0648\u0645 \u0627\u0632 <code>useTableSearchParams<\/code>.<\/p>\n<div class=\"highlight js-code-highlight\" wp_automatic_readability=\"16\">\n<pre class=\"highlight tsx\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">stateAndOnChanges<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useTableSearchParams<\/span><span class=\"p\">(<\/span><span class=\"nx\">router<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">encoders<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ Change encoding format to use JSON.stringify<\/span>\n    <span class=\"na\">globalFilter<\/span><span class=\"p\">:<\/span> <span class=\"p\">(<\/span><span class=\"nx\">globalFilter<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">({<\/span>\n      <span class=\"na\">globalFilter<\/span><span class=\"p\">:<\/span> <span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nf\">stringify<\/span><span class=\"p\">(<\/span><span class=\"nx\">globalFilter<\/span><span class=\"p\">),<\/span>\n    <span class=\"p\">}),<\/span>\n  <span class=\"p\">},<\/span>\n  <span class=\"na\">decoders<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">globalFilter<\/span><span class=\"p\">:<\/span> <span class=\"p\">(<\/span><span class=\"nx\">query<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span>\n      <span class=\"nx\">query<\/span><span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">globalFilter<\/span><span class=\"dl\">\"<\/span><span class=\"p\">]<\/span>\n        <span class=\"p\">?<\/span> <span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nf\">parse<\/span><span class=\"p\">(<\/span><span class=\"nx\">query<\/span><span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">globalFilter<\/span><span class=\"dl\">\"<\/span><span class=\"p\">])<\/span>\n        <span class=\"p\">:<\/span> <span class=\"p\">(<\/span><span class=\"nx\">query<\/span><span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">globalFilter<\/span><span class=\"dl\">\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">??<\/span> <span class=\"dl\">\"\"<\/span><span class=\"p\">),<\/span>\n  <span class=\"p\">},<\/span>\n<span class=\"p\">});<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0641\u0631\u0645\u062a \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u0648 \u0646\u0627\u0645 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\" wp_automatic_readability=\"16\">\n<pre class=\"highlight tsx\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">stateAndOnChanges<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useTableSearchParams<\/span><span class=\"p\">(<\/span><span class=\"nx\">router<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">encoders<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">sorting<\/span><span class=\"p\">:<\/span> <span class=\"p\">(<\/span><span class=\"nx\">sorting<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">({<\/span>\n      <span class=\"c1\">\/\/ Change encoding format to JSON.stringify and rename parameter to my-sorting<\/span>\n      <span class=\"dl\">\"<\/span><span class=\"s2\">my-sorting<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nf\">stringify<\/span><span class=\"p\">(<\/span><span class=\"nx\">sorting<\/span><span class=\"p\">),<\/span>\n    <span class=\"p\">}),<\/span>\n  <span class=\"p\">},<\/span>\n  <span class=\"na\">decoders<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">sorting<\/span><span class=\"p\">:<\/span> <span class=\"p\">(<\/span><span class=\"nx\">query<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span>\n      <span class=\"nx\">query<\/span><span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">my-sorting<\/span><span class=\"dl\">\"<\/span><span class=\"p\">]<\/span>\n        <span class=\"p\">?<\/span> <span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nf\">parse<\/span><span class=\"p\">(<\/span><span class=\"nx\">query<\/span><span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">my-sorting<\/span><span class=\"dl\">\"<\/span><span class=\"p\">])<\/span>\n        <span class=\"p\">:<\/span> <span class=\"nx\">query<\/span><span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">my-sorting<\/span><span class=\"dl\">\"<\/span><span class=\"p\">],<\/span>\n  <span class=\"p\">},<\/span>\n<span class=\"p\">});<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%D9%86%D8%AD%D8%B1%D8%A7%D9%81\"><\/span>\n<p>  \u0627\u0646\u062d\u0631\u0627\u0641<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u062d\u0627\u0644\u062a \u0631\u0627 \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0644\u063a\u0648 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\" wp_automatic_readability=\"9\">\n<pre class=\"highlight tsx\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">stateAndOnChanges<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useTableSearchParams<\/span><span class=\"p\">(<\/span><span class=\"nx\">router<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">debounceMilliseconds<\/span><span class=\"p\">:<\/span> <span class=\"mi\">500<\/span><span class=\"p\">,<\/span>\n<span class=\"p\">});<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u062a\u0646\u0647\u0627 \u062d\u0627\u0644\u062a\u200c\u0647\u0627\u06cc \u062e\u0627\u0635 \u062c\u062f\u0648\u0644 TanStack \u0631\u0627 \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\" wp_automatic_readability=\"11\">\n<pre class=\"highlight tsx\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">stateAndOnChanges<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useTableSearchParams<\/span><span class=\"p\">(<\/span><span class=\"nx\">router<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">debounceMilliseconds<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ Debounce synchronization of globalFilter with URL parameters by 0.5 seconds<\/span>\n    <span class=\"na\">globalFilter<\/span><span class=\"p\">:<\/span> <span class=\"mi\">500<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">},<\/span>\n<span class=\"p\">});<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D9%82%D8%A7%D8%AF%DB%8C%D8%B1_%D9%BE%DB%8C%D8%B4_%D9%81%D8%B1%D8%B6\"><\/span>\n<p>  \u0645\u0642\u0627\u062f\u06cc\u0631 \u067e\u06cc\u0634 \u0641\u0631\u0636<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0648\u0642\u062a\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u0646\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0642\u0627\u062f\u06cc\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0648\u0636\u0639\u06cc\u062a\u200c\u0647\u0627\u06cc \u062c\u062f\u0648\u0644 TanStack \u062a\u0639\u06cc\u06cc\u0646 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0628\u062f\u0648\u0646 \u062a\u0646\u0638\u06cc\u0645 \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0628\u0631\u0627\u06cc \u0645\u0631\u062a\u0628 \u0633\u0627\u0632\u06cc\u060c <code>state.sorting<\/code> \u0645\u0642\u062f\u0627\u0631 (\u0634\u0631\u0627\u06cc\u0637 \u0645\u0631\u062a\u0628 \u0633\u0627\u0632\u06cc) \u0648 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 URL \u0645\u0631\u0628\u0648\u0637\u0647 \u0628\u0647 \u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u0646\u062f:<\/p>\n<div class=\"table-wrapper-paragraph\">\n<table>\n<thead>\n<tr>\n<th>\n<code>state.sorting<\/code>  \u0627\u0631\u0632\u0634<\/th>\n<th>\u067e\u0627\u0631\u0627\u0645\u062a\u0631 URL<\/th>\n<\/tr>\n<\/thead>\n<tbody wp_automatic_readability=\"3\">\n<tr>\n<td><code>[]<\/code><\/td>\n<td>\u0647\u06cc\u0686 \u06a9\u062f\u0627\u0645<\/td>\n<\/tr>\n<tr wp_automatic_readability=\"3\">\n<td><code>[{ id: \"createdAt\", desc: true }]<\/code><\/td>\n<td><code>?sorting=createdAt.desc<\/code><\/td>\n<\/tr>\n<tr wp_automatic_readability=\"3\">\n<td><code>[{ id: \"createdAt\", desc: false }]<\/code><\/td>\n<td><code>?sorting=createdAt.asc<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>(\u062a\u0648\u062c\u0647: <code>createdAt<\/code> \u0646\u0627\u0645 \u0633\u062a\u0648\u0646 \u0627\u0633\u062a.)<\/p>\n<p>\u062f\u0631 \u0645\u0642\u0627\u0628\u0644\u060c \u0627\u06af\u0631 \u062a\u0631\u062a\u06cc\u0628 \u0645\u0631\u062a\u0628\u200c\u0633\u0627\u0632\u06cc \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0631\u0627 \u0645\u0637\u0627\u0628\u0642 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0631\u0648\u06cc \u0646\u0632\u0648\u0644\u06cc \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\" wp_automatic_readability=\"12\">\n<pre class=\"highlight tsx\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">stateAndOnChanges<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useTableSearchParams<\/span><span class=\"p\">(<\/span><span class=\"nx\">router<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">defaultValues<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">sorting<\/span><span class=\"p\">:<\/span> <span class=\"p\">[{<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">createdAt<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"na\">desc<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span> <span class=\"p\">}],<\/span>\n  <span class=\"p\">},<\/span>\n<span class=\"p\">});<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0631\u0627 <code>state.sorting<\/code> \u0645\u0642\u062f\u0627\u0631 \u0648 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 URL \u0645\u0631\u0628\u0648\u0637\u0647 \u0628\u0647 \u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<div class=\"table-wrapper-paragraph\">\n<table>\n<thead>\n<tr>\n<th>\n<code>state.sorting<\/code>  \u0627\u0631\u0632\u0634<\/th>\n<th>\u067e\u0627\u0631\u0627\u0645\u062a\u0631 URL<\/th>\n<\/tr>\n<\/thead>\n<tbody wp_automatic_readability=\"3\">\n<tr>\n<td><code>[]<\/code><\/td>\n<td><code>?sorting=none<\/code><\/td>\n<\/tr>\n<tr wp_automatic_readability=\"3\">\n<td><code>[{ id: \"createdAt\", desc: true }]<\/code><\/td>\n<td>\u0647\u06cc\u0686 \u06a9\u062f\u0627\u0645<\/td>\n<\/tr>\n<tr wp_automatic_readability=\"3\">\n<td><code>[{ id: \"createdAt\", desc: false }]<\/code><\/td>\n<td><code>?sorting=createdAt.asc<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AF%D8%B1_%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\"><\/span>\n<p>  \u062f\u0631 \u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06cc\u0646 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u0632 \u06a9\u0627\u0631 \u0645\u0646 \u0633\u0631\u0686\u0634\u0645\u0647 \u06af\u0631\u0641\u062a\u0647 \u0627\u0633\u062a\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0646 \u0628\u0647 \u06cc\u06a9 \u0631\u0627\u0647 \u0633\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u062d\u0627\u0644\u062a \u0647\u0627\u06cc \u062c\u062f\u0648\u0644 TanStack \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL \u0646\u06cc\u0627\u0632 \u062f\u0627\u0634\u062a\u0645.<\/p>\n<p>\u062a\u0627 \u06a9\u0646\u0648\u0646\u060c \u0645\u0646 \u062a\u0645\u0627\u0645 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0634\u062e\u0635\u0627\u064b \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0634\u062a\u0645\u060c \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0631\u062f\u0647 \u0627\u0645. \u062f\u0631 \u062d\u0631\u06a9\u062a \u0631\u0648 \u0628\u0647 \u062c\u0644\u0648\u060c \u0645\u0646 \u0642\u0635\u062f \u062f\u0627\u0631\u0645 \u0628\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0648\u0636\u0639\u06cc\u062a \u0647\u0627\u06cc TanStack Table \u0628\u06cc\u0634\u062a\u0631 \u0648 \u06af\u0633\u062a\u0631\u0634 \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0633\u0627\u0632\u06cc\u060c \u06a9\u0627\u0645\u0644 \u0628\u0648\u062f\u0646 \u0622\u0646 \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u0645.<\/p>\n<p>\u0636\u0645\u0646\u0627 \u0627\u06cc\u0646 \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0631 \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0628\u0633\u062a\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f\u0645 \u0631\u0627 \u062f\u0631 npm \u0645\u0646\u062a\u0634\u0631 \u0645\u06cc \u06a9\u0646\u0645. \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0646\u062d\u0648\u0647 \u0627\u0646\u062a\u0634\u0627\u0631 \u062f\u0631 npm \u0648 \u06a9\u0634\u0641 \u0631\u0627\u062d\u062a\u06cc \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f tsup \u06cc\u06a9 \u062a\u062c\u0631\u0628\u0647 \u0639\u0627\u0644\u06cc \u0628\u0648\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0634\u0645\u0627 \u0622\u0646 \u0631\u0627 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u06cc\u062f\u060c \u062e\u0648\u0634\u062d\u0627\u0644 \u0645\u06cc \u0634\u0648\u0645! (\u0648 \u0645\u0646 \u062e\u0648\u0634\u062d\u0627\u0644 \u062a\u0631 \u0645\u06cc \u0634\u0648\u0645 \u0627\u06af\u0631 \u0645\u062e\u0632\u0646 \u0631\u0627 \u0633\u062a\u0627\u0631\u0647 \u062f\u0627\u0631 \u06a9\u0646\u06cc\u062f!)<\/p>\n<div class=\"ltag-github-readme-tag\">\n<div class=\"readme-overview\">\n<h3><span class=\"ez-toc-section\" id=\"React_Hook_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%87%D9%85%DA%AF%D8%A7%D9%85_%D8%B3%D8%A7%D8%B2%DB%8C_%D9%88%D8%B6%D8%B9%DB%8C%D8%AA_TanStack_Table_%D8%A8%D8%A7_%D9%BE%D8%A7%D8%B1%D8%A7%D9%85%D8%AA%D8%B1%D9%87%D8%A7%DB%8C_%D8%AC%D8%B3%D8%AA%D8%AC%D9%88%DB%8C_URL-2\"><\/span>\n<p>      React Hook \u0628\u0631\u0627\u06cc \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0648\u0636\u0639\u06cc\u062a TanStack Table \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc URL.<br \/>\n    <span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/p><\/div>\n<div class=\"ltag-github-body\">\n<div id=\"readme\" class=\"md\" data-path=\"README.md\" wp_automatic_readability=\"10.350457782299\">\n<article class=\"markdown-body entry-content container-lg\" itemprop=\"text\" wp_automatic_readability=\"43.866225839268\">\n<p dir=\"auto\">React Hook \u0628\u0631\u0627\u06cc \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0648\u0636\u0639\u06cc\u062a TanStack Table \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc URL.<\/p>\n<details open=\"\" class=\"details-reset border rounded-2\">\n<summary class=\"px-3 py-2\">\n    <svg aria-hidden=\"true\" height=\"16\" viewbox=\"0 0 16 16\" version=\"1.1\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-device-camera-video\">\n<\/svg><br \/>\n    <span aria-label=\"Video description tanstack-table-search-params.mp4\" class=\"m-1\">tanstack-table-search-params.mp4<\/span><br \/>\n  <\/summary>\n<p>  <video src=\"https:\/\/private-user-images.githubusercontent.com\/66539019\/357005312-1f1b4a65-fdec-4a80-a5d5-783642befaa3.mp4?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzI3MTYzNzIsIm5iZiI6MTczMjcxNjA3MiwicGF0aCI6Ii82NjUzOTAxOS8zNTcwMDUzMTItMWYxYjRhNjUtZmRlYy00YTgwLWE1ZDUtNzgzNjQyYmVmYWEzLm1wND9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDExMjclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMTI3VDE0MDExMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM1NzQwYWM3ZGVhOTcwN2JjMTZiNDhkMDFjYzAxZGU2OGM5NTc0NWY1ODY3NmI3Yzc3MzU2YzhmNTUxMDMyMmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.xafsgnqZBBq9RpoypccB-r0dOBUJu2EWERQzhXe4Hy8\" data-canonical-src=\"https:\/\/private-user-images.githubusercontent.com\/66539019\/357005312-1f1b4a65-fdec-4a80-a5d5-783642befaa3.mp4?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzI3MTYzNzIsIm5iZiI6MTczMjcxNjA3MiwicGF0aCI6Ii82NjUzOTAxOS8zNTcwMDUzMTItMWYxYjRhNjUtZmRlYy00YTgwLWE1ZDUtNzgzNjQyYmVmYWEzLm1wND9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDExMjclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMTI3VDE0MDExMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM1NzQwYWM3ZGVhOTcwN2JjMTZiNDhkMDFjYzAxZGU2OGM5NTc0NWY1ODY3NmI3Yzc3MzU2YzhmNTUxMDMyMmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.xafsgnqZBBq9RpoypccB-r0dOBUJu2EWERQzhXe4Hy8\" controls=\"controls\" muted=\"muted\" class=\"d-block rounded-bottom-2 border-top width-fit\" style=\"max-height:640px; min-height: 200px\"><\/p>\n<p>  <\/video><br \/>\n<\/details>\n<h2 class=\"heading-element\" dir=\"auto\"><span class=\"ez-toc-section\" id=\"%F0%9F%9A%80_%D8%B4%D8%B1%D9%88%D8%B9_%D8%B3%D8%B1%DB%8C%D8%B9-2\"><\/span>\ud83d\ude80 \u0634\u0631\u0648\u0639 \u0633\u0631\u06cc\u0639<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p dir=\"auto\">\u0627\u0628\u062a\u062f\u0627 \u0628\u0633\u062a\u0647 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight\" dir=\"auto\" data-snippet-clipboard-copy-content=\"npm i tanstack-table-search-params\" wp_automatic_readability=\"7\">\n<pre>npm i tanstack-table-search-params<\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p dir=\"auto\">\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u06af\u0631 \u0627\u0632 Next.js (\u0645\u0633\u06cc\u0631\u06cc\u0627\u0628 \u0635\u0641\u062d\u0627\u062a) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0647\u0648\u06a9 \u0628\u0647 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight highlight-source-tsx notranslate position-relative overflow-auto js-code-highlight\" dir=\"auto\" data-snippet-clipboard-copy-content=\"import { useReactTable } from \" tanstack-table=\"\" import=\"\" userouter=\"\" from=\"\" usetablesearchparams=\"\" const=\"\" router=\"useRouter();\" get=\"\" state=\"\" and=\"\" onchanges=\"\" stateandonchanges=\"useTableSearchParams({\" query:=\"\" router.query=\"\" pathname:=\"\" router.pathname=\"\" replace:=\"\" router.replace=\"\" or=\"\" push:=\"\" router.push=\"\" table=\"useReactTable({\" set=\"\" ...stateandonchanges=\"\" data=\"\" columns=\"\" getcorerowmodel:=\"\" getcorerowmodel=\"\" getfilteredrowmodel:=\"\" getfilteredrowmodel=\"\" getsortedrowmodel:=\"\" getsortedrowmodel=\"\" ...=\"\" other=\"\" options=\"\" wp_automatic_readability=\"20\">\n<pre><span class=\"pl-k\">import<\/span> <span class=\"pl-kos\">{<\/span> <span class=\"pl-s1\">useReactTable<\/span> <span class=\"pl-kos\">}<\/span> <span class=\"pl-k\">from<\/span> <span class=\"pl-s\">\"tanstack-table\"<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-k\">import<\/span> <span class=\"pl-kos\">{<\/span> <span class=\"pl-s1\">useRouter<\/span> <span class=\"pl-kos\">}<\/span> <span class=\"pl-k\">from<\/span> <span class=\"pl-s\">\"next\/router\"<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-k\">import<\/span> <span class=\"pl-kos\">{<\/span> <span class=\"pl-s1\">useTableSearchParams<\/span> <span class=\"pl-kos\">}<\/span> <span class=\"pl-k\">from<\/span> <span class=\"pl-s\">\"tanstack-table-search-params\"<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-k\">const<\/span> <span class=\"pl-s1\">router<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-en\">useRouter<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span>\n\n<span class=\"pl-c\">\/\/ Get state and onChanges<\/span>\n<span class=\"pl-k\">const<\/span> <span class=\"pl-s1\">stateAndOnChanges<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-en\">useTableSearchParams<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">{<\/span>\n  <span class=\"pl-c1\">query<\/span>: <span class=\"pl-s1\">router<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">query<\/span><span class=\"pl-kos\">,<\/span>\n  <span class=\"pl-c1\">pathname<\/span>: <span class=\"pl-s1\">router<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">pathname<\/span><span class=\"pl-kos\">,<\/span>\n  <span class=\"pl-c1\">replace<\/span>: <span class=\"pl-s1\">router<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">replace<\/span><span class=\"pl-kos\">,<\/span>\n  <span class=\"pl-c\">\/\/ or<\/span>\n  <span class=\"pl-c1\">push<\/span>: <span class=\"pl-s1\">router<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">push<\/span><span class=\"pl-kos\">,<\/span>\n<span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span>\n\n<span class=\"pl-k\">const<\/span> <span class=\"pl-s1\">table<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-en\">useReactTable<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">{<\/span>\n  <span class=\"pl-c\">\/\/ Set state and onChanges<\/span>\n  ...<span class=\"pl-s1\">stateAndOnChanges<\/span><span class=\"pl-kos\">,<\/span>\n  data<span class=\"pl-kos\">,<\/span>\n  columns<span class=\"pl-kos\">,<\/span>\n  <span class=\"pl-c1\">getCoreRowModel<\/span>: <span class=\"pl-en\">getCoreRowModel<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">,<\/span>\n  <span class=\"pl-c1\">getFilteredRowModel<\/span>: <span class=\"pl-en\">getFilteredRowModel<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">,<\/span>\n  <span class=\"pl-c1\">getSortedRowModel<\/span>: <span class=\"pl-en\">getSortedRowModel<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">,<\/span>\n  <span class=\"pl-c\">\/\/ ... other options<\/span><\/pre>\n<p>\u2026<\/p>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang Tanstack Table \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 UI \u0628\u0633\u06cc\u0627\u0631 \u0642\u0627\u0628\u0644 \u062a\u0646\u0638\u06cc\u0645 \u0648 \u0628\u062f\u0648\u0646 \u0647\u062f \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u062c\u062f\u0627\u0648\u0644 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u062f\u0631 \u0686\u0627\u0631\u0686\u0648\u0628 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u0632 \u062c\u0645\u0644\u0647 React\u060c Vue \u0648 Solid \u0627\u0633\u062a. \u0645\u0646 \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u0645 tanstack-table-search-params. \u0627\u06cc\u0646 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0648\u0636\u0639\u06cc\u062a TanStack Table &#8211; \u0645\u0627\u0646\u0646\u062f \u062c\u0633\u062a\u062c\u0648 \u0648 \u0645\u0631\u062a\u0628\u200c\u0633\u0627\u0632\u06cc &#8211; &hellip;<\/p>\n","protected":false},"author":2,"featured_media":85733,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-85729","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/85729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=85729"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/85729\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/85733"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=85729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=85729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=85729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}