https://refine.dev/doctors/migration-recordsdata/3x-to-4x/ refine v4 の新機能は何ですか?
🔥
)@refinedev/codemod パッケージは、ミッションの破壊的な変更を処理します手動ステップなしで自動的に。
アプローチはトータルで、あなたの使命は今使用 refine@4.xx
。
はもはや有名ではなく、おそらくルーターなしで洗練を使用する地域にいるようです.
-
のルートを強化するハイノッチを提供するようになりました資力 . この新しい機能を使用すると、開発された努力のユースケースの実際のニーズを満たすようにさらに調整できる意図的なルートへの完全な自由を手に入れることができるようです. 制限や制限はありません。そのため、実際の要件に真に適合するルートを意図する地域にいると思われます.
あなたはあなたの行動を明確にする領域 (
目的
、 編集, ラベル
、クローン[ { name: "posts", list: PostList, }, ] ) マップよりもややパスとして。 これにより、アクション用にカスタマイズされたルートを定義し、さらに、自動的に作成されたルートに制限されることなく、ルーターの肉付きの良い機能を使用できるようになります. ⭐ バンドルの次元を減らしましたパフォーマンスを向上させ、バンドル ディメンションを最適化するために、refine から削除された再エクスポート パッケージを所有しています。
再輸出は、パッケージをロードせずに従来のままにすることを許可するのと同様の利点を提供できますが、バンドル次元の要因がさらに発生するはずです. 近所からのフィードバックに沿って、私たちはこのtrを作りましたバンドル ディメンションとしての ade は、React にとって非常に重要であることが判明しました-主にベースの完全なフレームワークは、Remix と Next.js の助けを借りて、さまざまな CRUD アプリケーションをより強力にする改良を楽しんでいます. 再エクスポートされたパッケージを削除すると、通常の React ミッションと同じバンドル ディメンションを作成できます。 [ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },] ⭐ Fresh Auth Provider [ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },] refine v4 では、authProvider の簡単な戦略のための洗練されたインターフェイスが導入され、ビルダーの透明性が向上し、より大きな理解とデバッグが容易になります。 以前は、ビルダーは成功時に authProvider 戦略を解決し、失敗時に拒否する必要がありました 。 最新の更新により、refine v4 の authProvider 戦略は、一貫して解決された promise を返します。勝利の鍵を持つオブジェクト。 このキーは、操作が以前は勝っていたかどうかを示します。 失敗した場合、Error オブジェクトを保持するあまり知られていないエラー キーも、customers と発音する慣例になります。 [ { name: "posts", list: "users/:authorId/posts", show: "users/:authorId/posts/:id", }, ] 使用されているすべての更新については、AuthProvider Migration Info を参照してください 変更履歴 [ { name: "posts", list: "users/:authorId/posts", show: "users/:authorId/posts/:id", }, ] 📗 次のリファイン パッケージには、パーツとフックの更新が含まれます。 クリックするだけで、移動記録データの事実を知ることができます.最新のパーツとアップデートについて、以下にラベルを付けます。 肉厚な変化ログを知覚する領域になります
@refinedev/core
アップデート
リソースの変更
これで、おそらく、複数の方法で明確なアクションを実行する領域にいるように思われます; 私。 ルートとして
}> ... ">
...
ii. その一環として
... ;">import { PostList } from "src/posts"; ... ; iii. 両方として
... ;">import { PostList } from "src/posts"; ... ; ネストされたルート
refine は、パラメーターを使用してネストされたルートを支援します。 パラメーターを持つリソースのアクション パスを明確にするために、領域にいることになります。 パラメータには URL 内の最新のパラメータが詰め込まれ、追加のパラメータはフックとマップのメタ プロパティを使用して提供されます。 "> [ { name: "posts", list: { path: "/posts", component: PostList, }, }, ] routerProvider の変更 routerProvider はより小さくなり、より柔軟になりました. 次のプロパティが完全に含まれています。
ハイパーリンク: prop を受け入れ、へのリンクをレンダリングする部分与えられたルート. breeze: 公平を返す不公平構成オブジェクトを受け入れ、指定されたルートに移動します。 援助 : 古いページへの補助をナビゲートする公平を返す公平。
パース: 指定されたルートからリソース、ID、アクション、および追加のパラメーターを返す公平を返す公平。 ここにあるのは、refine がルーター ライブラリと通信できる可能性です @refinedev/antd アップデート ) map[ { name: "posts", list: "users/:authorId/posts", show: "users/:authorId/posts/:id", }, ] の meta プロパティの変更 おそらく、おそらくおそらく、追加のパラメーターをナビゲーションパスに渡すのも慣例です. のために posts リソースの定義 これを楽しむ: "> <リファイン 資力 ={[ { name: "posts", list: "/posts", show: "/:authorId/posts/:id", } ]} [ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },]>
あなたは通過する地域にいるでしょう authorId
を
ShowButton[ { name: "posts", list: "users/:authorId/posts", show: "users/:authorId/posts/:id", }, ] に 部分はこれをお楽しみください:">リソース=「投稿」 ID=[ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },] "1" メタ ={ { authorId: 123 }}> これはおそらく /123/posts/1 ルート. [ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },] syncWithLocation[ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },] で を強くするuseDrawerForm および useModalForm[ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },] フック *)useTable[ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },] 戻り値とプロパティが更新されました. -useSimpleList フックは のすべてを取得するだけではなくなりました)
パーツ プロパティ 非推奨パーツと削除された小道具 [ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },] ignoreAccessControlProvider プロップは途方もないですボタンから。 useCheckboxGroup[ { name: "posts", list: PostList, }, ] , useSelect , useRadioGroup[ { name: "posts", list: PostList, }, ] 's' 親切 prop は非推奨になりました。 選別者を雇う[ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },] もう1つ小道具として useImport の resourceName prop は非推奨になりました。 リソース[ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },]を採用 もう1つ小道具として は非推奨になりました. 非推奨 useMenu @refinedev/antd から離れた方法 パッケージ。 採用 useMenu から @refinedev/core パッケージとしてもう 1 つ Codemodによる自動移行
@pankod/refine-codemod パッケージは、ミッションの破壊的な変更を自動的に処理し、手動の手順は必要ありません. npx @pankod/refine-codemod antd4-to-antd5 そして完成です。 これで、ミッションは
@pankod/refine-antd@4.xx を使用します. @refinedev/mui アップデート このレベルのボタンの数だけ リソース
財産。 resourceNameOrRouteName[ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },] は非推奨になりましたが、後続の主要なバージョンまで動作し続けました. 非推奨 useMenu a way off from @refinedev/mui パッケージ。 採用 useMenu から @refinedev/core パッケージとしてもう1つ。 削除された小道具
ignoreAccessControlProvider 小道具はボタンから離れています. cardProps 、 cardHeaderProps, cardContentProps[ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },] , cardActionsProps およびactionButtons[ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },] props は CRUD 部分から離れています。 useAutocomplete の kind プロパティは非推奨になりました。 選別者を雇う[ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },] もう1つ小道具として initialCurrent と initialPageSize props は非推奨になりました。 ページネーション[ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },]を採用 もう1つ小道具として useDataGrid({ - initialCurrent, - initialPageSize, + ページネーション: { + 最も近代的な、 + ページサイズ、 +[ { name: "posts", list: "users/:authorId/posts", show: "users/:authorId/posts/:id", }, ] }, })
hasPaginationprop は非推奨になりました。pagination.mode` をもう 1 つ採用します useDataGrid({ - hasPagination, + ページネーション: { + モード: "オフ" | "サーバー" | "クライアント"、 + }, }) - ソーター およびsetSorter[ { name: "posts", list: { path: "/posts", component: PostList, }, }, ] 戻り値は非推奨になりました。選別者を雇う[ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },] と setSorters
[ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },] 全てCloth UI マップを から再エクスポート) @refinedev/mui 自身が削除されました。 今すぐクロスUIパッケージから平和的にインポートする必要があります.npmインストール@ mui/cloth @emotion/react @emotion/styled @mui/lab @mui/x-records-grid # または pnpm add @mui/cloth @emotion/react @emotion/スタイル @mui/lab @mui/x-records-grid # または myth add @mui/cloth @emotion/react @emotion/style d @mui/lab @mui/x-records-grid その後、接続されたパッケージからそれらをインポートする地域にいるようです.[ { field: "name", operator: "eq", value: "JR Doe", }, { field: "age", operator: "eq", value: 1, },] - 輸入 { - 箱、 - NumberField, - スタック、 - タイポグラフィ、