如何在不使用create-react-app的情况下使用Material-UI

麦克弗利

我的目标是不使用Material-UI而不使用create-react-app,因为后者对我来说太多了,无法学习这些东西。不幸的是,我发现的所有指令都完全基于create-react-app。

我想生成最简单的设置来实现此目的,主要是出于学习目的。首先,我只想显示一个简单的Material-UI按钮。

为此,我使用了reactjs.org中最简约的React-“ Hello World”示例,并通过以下方式添加了Material-UI UMD:


    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8" />
        <title>Hello World</title>
        <script src="https://unpkg.com/react@17/umd/react.development.js"></script>
        <script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
        <script src="https://unpkg.com/@material-ui/core@latest/umd/material-ui.development.js"></script>
        <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
      </head>
      <body>
        <div id="root"></div>
        <script type="text/babel">
    
          ReactDOM.render(
            <Button variant="contained" color="primary">
               Hello World
            </Button>,
            document.getElementById('root')
          );
    
        </script>
      </body>
    </html>

我无法从material-ui.development.js导入Button,然后呈现此Button。

我在代码的不同位置尝试了不同的import和require()表达式,但这更多是一次尝试和错误,而不是真正了解什么是必需的。

我希望有人可以在这里帮助我。

亮粉色

这涉及许多主题。您的脚本文件包含一个模块,在这种情况下,模块功能为IIFE这不是简单的代码,但关键部分是这样的:

factory(global.MaterialUI = {}, global.React, global.ReactDOM)

global是传入作为函数参数thisfactory另外一个函数参数是一个函数本身。this指向一个对象,在这种情况下为window因此,您可以访问的是window.MaterialUI

window为了方便起见,可以省略它。您的Button组件可通过访问MaterialUI.Buttton如果要使用多个组件,则可能要使用解构分配:

const { Button, TextField, Typography } = MaterialUI

我想补充一点,没有一个基础概念是特定于Material-UI或React的,因此,如果您想学习那些CRA,那是完美的恕我直言。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Angular UI-Grid,如何在不使用行选择的情况下访问行实体数据?

如何在不使用Jquery UI的情况下动态移动HTML 5范围输入句柄

如何在不安装material-ui的情况下安装Material-UI Docs?

React-如何在不使用构造函数的情况下访问道具

如何在不使用MUIThemeProvider的情况下覆盖material-ui TextField组件的样式?

如何在SAP UI5 / SAP FIORI中不使用智能控件的情况下创建变体

如何在不使用<MuiThemeProvider />的情况下更改Material-UI TextField底部颜色

如何在不使用主题的情况下自定义Material-UI的下划线样式?

在不使用API网关的情况下从Amplify生成的React App调用Lambda函数

如何在不使用onChange事件的情况下从Material UI获取TextField的输入值?

在已经使用withTheme()的情况下使用withStyles()覆盖material-ui主题

如何在不使用docker安装Node js的情况下开发Node JS(create-react-app)

如何在不使网站离线的情况下构建用于生产的React App?

如何在不使用Uno.UI的情况下从Xamarin.Forms应用程序调用JavaScript?

如何在create-react-app和Typescript中使用CSS模块覆盖Material-UI?

如何在不使用git的情况下创建React应用(跳过git)?

如何在没有唯一键警告的情况下使用React渲染Material UI网格

如何在不使用onChange的情况下使用React为<select>设置值?

如何在React Native中不使用任何API调用的情况下重新渲染组件?

如何在不使用create-react-app且仅使用我自己的Webpack的情况下设置package.json进行部署?

如何在不使用'href'属性的情况下初始化jQuery UI Tabs?

如何在没有 React 的情况下使用 GraphQL?

如何在不使用 npm 的情况下正确渲染 react datepicker?

如何在不使用 Stripe 的 UI 层的情况下获取客户端令牌?

在 React App 中使用 Material-UI 或 Semantic UI

如何在不使用 setState 的情况下显示 react-redux 状态值?

如何在不使用 Material UI 库的情况下创建类似于 Material UI 文本字段的文本字段?

React useState setter 如何在不使用状态变量的情况下更新此状态变量?

React-router-dom如何在不使用History的情况下使用goBack函数