材料UI 4をmui - 5に移行する
14332 ワード
ヵ月前に、MUIチームは2010年のバージョン5をリリースしました
必要条件: まずアップグレードする前にコードをコミットしてください 最新のパッケージをインストールする
インストール
パッケージ名を
インストール@ Motion/スタイル
スタイルコンポーネントのインストール
のために
フォントのインストール
デフォルトでは
構成グローバルテーマオブジェクト
the
すべてのコードベースを更新する
パッケージ名が変更されると、必ず新しいパッケージ名をインポートする必要があります.それを行うには、今の場合は、手動で何百ものコンポーネントがありますか?きっと使えます
メイクスタイルはありますか?
はい、我々はまだ
ファイナルワールド
我々は、我々が使用していたプロジェクトに取り組んでいる
あなたがこのポストに役立つとわかるならば、家族と友人とそれを共有してください、それの上でどんな反応でも共有するのを自由に感じてください!
Twitter
Material-ui
. 彼らはこのバージョンでいくつかの変更を行い、それらのいくつか私たち自身のaymoreで設定する必要があります.それ以上の深さを見ましょう!必要条件:
react
, react-dom
, and react-scripts
. インストール
パッケージ名を
@material-ui/core
to @mui/material
@material-ui/lab
to @mui/lab
@material-ui/icons
to @mui/icons-material
また、インストールする必要があります@emotion
スタイルのために、それらのスタイルAPIを推奨しませんmakeStyle
そして@mui/system
リブ.これで、@emotion
or styled-components
.$ yarn add @mui/material @mui/lab @mui/icons-material
# NPM
$ npm i @mui/material @mui/lab @mui/icons-material
インストール@ Motion/スタイル
$ yarn add @mui/system @emotion/react @emotion/styled
# NPM
$ npm i @mui/system @emotion/react @emotion/styled
スタイルコンポーネントのインストール
のために
yarn
ユーザは良いニュースです:スタイルのコンポーネントパッケージとブームのエイリアスを簡素化することができます.そのためには、次の行をpackage.json
ファイルを再度実行yarn
インストールする@mui/styled-engine-sc
ASstyle-engine また、styled-components
. 以前にインストールしたものを削除する@emtion/*
スタイルリブ. {
"dependencies": {
- "@mui/styled-engine": "latest"
+ "@mui/styled-engine": "npm:@mui/styled-engine-sc@latest"
},
+ "resolutions": {
+ "@mui/styled-engine": "npm:@mui/styled-engine-sc@latest"
+ },
}
フォントのインストール
デフォルトでは
robot
フォント.現在、我々は責任がありますinstalling and hosting the font あなた自身で.反応アプリでフォントを使用するいくつかの方法があります、推奨されている自己ホストされているので、我々は使用している@fontsource
フォントをインストールするには$ yarn add @fontsource/roboto
# NPM
$ npm install @fontsource/roboto
今、我々はあなたが包装している場所のようなエントリポイントにインポートする必要がありますThemeProvider
またはtheme.js
ファイルimport '@fontsource/roboto/300.css';
import '@fontsource/roboto/400.css';
import '@fontsource/roboto/500.css';
import '@fontsource/roboto/700.css';
構成グローバルテーマオブジェクト
the
createMuiTheme
改称createTheme
, またstructure of theme has changed in v5 . adaptV4Theme
ヘルパーを反復的に新しいテーマ構造の構造にいくつかのテーマの変更をアップグレードすることができます.しかし、すぐに次のバージョンでは削除されます.import { createTheme, adaptV4Theme } from '@mui/material/styles';
const theme = createTheme(adaptV4Theme({
// v4 theme
});
}));
the fade
と改名alpha
:import { alpha } from '@mui/material/styles';
backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),
ThemeProvider:import { ThemeProvider, createTheme } from '@mui/material/styles';
import CssBaseline from '@mui/material/CssBaseline';
const theme = createTheme();
function App() {
ThemeProvider
return (
<ThemeProvider theme={theme}>
<CssBaseline />
<Root />
</ThemeProvider>
);
}
すべてのコードベースを更新する
パッケージ名が変更されると、必ず新しいパッケージ名をインポートする必要があります.それを行うには、今の場合は、手動で何百ものコンポーネントがありますか?きっと使えます
sed
and awk
を返します.しかし、我々は移動を簡単にするもう一つの支持を得ました.私たちは codemod
私は上記のように聞こえるより多くの機能といくつかのwarning , あなたはそれを気にかけるべきです.$ npx @mui/codemod v5.0.0/preset-safe src/components/Button
置換するsrc/components/Button
コンポーネントのpath
そして、インポートパッケージをファイルに変更します.プロセスがファイルをオープンし、インポートファイルを見ると、インポートされた新しいパスが必要になります.- import Avatar from '@material-ui/core/Button';
+ import Avatar from '@mui/material/Button';
@mui/codemod v5.0.0/preset-safe
ウィルあなたのために心配することなく、すべての魔法を行います.メイクスタイルはありますか?
はい、我々はまだ
makeStyles
スタイルAPI(ただし、推奨されず、次のバージョンで削除されます).そのためにインストールする必要があります@mui/styles
パッケージimport { createStyles, makeStyles, withStyles } from '@mui/styles';
これの別の解決策はsx
これは、CSSプロジェクトをサポートしています<Box sx={{ border: "1px dashed grey", p: [2, 3, 4], m: 2 }}>
移動する別の解決策makeStyles
to styled
使用$ npx @mui/codemod v5.0.0/jss-to-styled <path>
新しいコードスタイルを生成-const useStyles = makeStyles((theme) => ({
- chip: {
- padding: theme.spacing(1, 1.5),
- boxShadow: theme.shadows[1],
- }
-}))
// TO THIS
+const Root = styled('div')({
+ display: 'flex',
+})
ファイナルワールド
我々は、我々が使用していたプロジェクトに取り組んでいる
Material-ui
新しいバージョンが出てきたので、新しいバージョンにアップグレードすることを決めました.なぜなら私は@ muiの新機能と変更を最大限に活用したかったからです.私たちは、移行をするときに知っておく必要がある重要なトピックを議論しています.そして、私はそれがあなたを助けることを望む!あなたがこのポストに役立つとわかるならば、家族と友人とそれを共有してください、それの上でどんな反応でも共有するのを自由に感じてください!
Reference
この問題について(材料UI 4をmui - 5に移行する), 我々は、より多くの情報をここで見つけました https://dev.to/hasone/migrate-material-ui-4-to-mui-5-1g3iテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol