导入material-ui组件的不同方式之间有什么区别?

Gre*_*reg 1 javascript reactjs material-ui

通过阅读material-ui文档和在线示例,似乎可以通过不同的方式导入同一项目:

import TextField from 'material-ui/TextField';
// or
import TextField from '@material-ui/core/TextField';
// or
import { TextField } from '@material-ui/core';
Run Code Online (Sandbox Code Playgroud)

不同的导入方式之间有什么区别?

Dav*_*yon 5

主要区别发生在捆绑时。使用命名的导入:

import { TextField } from '@material-ui/core';
Run Code Online (Sandbox Code Playgroud)

拉入整个@material-ui/core模块。这意味着您将所有东西捆绑在模块中(以及所有依赖项)。核心中有很多组件。

输入:

import TextField from '@material-ui/core/TextField';
Run Code Online (Sandbox Code Playgroud)

仅提取TextField组件(及其依赖项)

我猜想TextField可以找到其他路径(例如material-ui/TextField)是为了与库的先前版本向后兼容。