Material UI 5 学习01-按钮组件

这篇具有很好参考价值的文章主要介绍了Material UI 5 学习01-按钮组件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、安装Material UI

首先我们创建React工程。然后安装样式和字体。下面使用yarn安装

//Material UI
yarn add @mui/material @emotion/react @emotion/styled
//styled-components
yarn add @mui/material @mui/styled-engine-sc styled-components
//安装Roboto字体
yarn add @fontsource/roboto
//安装MUI图标
yarn add @fontsource/roboto

//在public index.html引入google字体样式
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"/>
//在public index.html引入google MUI字体样式
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/>

二、 组件

我们先学习MUI的组件

1、Button组件

1、基础按钮

最基本的button按钮定义:

import {Button} from "@mui/material";
function App() {
  return (
    <div>
        <Button>这是一个按钮</Button>
    </div>
  );
}
export default App;

material-ui 组件,前端,ui,学习,javascript,react
可以看出,最基本的按钮没有边框,字体默认是蓝色的,其鼠标点击上去有背景颜色,是淡蓝色。其他的就没有什么了。
material-ui 组件,前端,ui,学习,javascript,react

2、variant属性

序号 属性值 含义
1 text 文本按钮,这个是按钮的默认属性。文本按钮 通常用于不太明显的动作,包括那些位于对话框、卡片中的动作。 在卡片中,文本按钮有助于保持卡片内容的重点。
2 contained 包含按钮。包含按钮 是高度强调的,以其使用的抬高和填充来区分。 它们包含对你的应用来说是主要的操作。
3 outlined 轮廓按钮。轮廓按钮也是包含按钮的一种较低强调度的选择, 或者更强调文本按钮的替代品。

代码演示:

<Button variant='text'>这是一个文本按钮</Button>
<Button variant='contained'>这是包含按钮</Button>
<Button variant='outlined'>这是轮廓按钮</Button>

material-ui 组件,前端,ui,学习,javascript,react

3、禁用按钮

加上disabled属性可以禁用按钮。默认是true。false就不是禁用了。

<Button variant='text' disabled>禁用文本按钮</Button>

4、可跳转的按钮

加尚href属性,可以进行跳转

<Button variant='text' href="#">禁用文本按钮</Button>
import {Button} from "@mui/material";
function App() {
  return (
    <div>
        <Button variant='text'>这是一个文本按钮</Button>
        <Button variant='text' disabled>禁用文本按钮</Button>
        <Button variant='text' href="#">禁用文本按钮</Button>
    </div>
  );
}
export default App;

material-ui 组件,前端,ui,学习,javascript,react

5、disableElevation属性

disableElevation是禁用阴影的意思。加上此属性,那么点击按钮没有阴影。
默认的按钮点击之后都存在阴影,左边的按钮是默认的按钮,右边的加了disableElevation属性,因此右边的点击没有阴影
material-ui 组件,前端,ui,学习,javascript,react
material-ui 组件,前端,ui,学习,javascript,react

6、按钮的点击事件onClick

import {Button} from "@mui/material";

function App() {
    const showData = () => {
        alert('按钮被点击了');
    }
    return (
        <div>
            <Button onClick={showData} variant='contained'>按钮</Button>
        </div>
    );
}

export default App;

上面的代码也可以简写:

import {Button} from "@mui/material";
function App() {
    return (
        <div>
            <Button onClick={()=>{alert("按钮被点击")}} variant='contained'>按钮</Button>
        </div>
    );
}
export default App;

2、Button按钮的颜色和尺寸

1、Button按钮的颜色

按钮使用color属性即可设置值:color=“primary”
默认的按钮属性值有7个

序号 属性值 含义
1 color=“inherit” 按钮文字的颜色取决于父组件的颜色
2 color=“primary” 强调重要行为的按钮
1 color=“secondary” 次要行为的按钮
1 color=“success” 显示操作成功的按钮
1 color=“error” 显示操作错误的按钮
1 color=“info” 陈述按钮
1 color=“warning” 警告按钮

material-ui 组件,前端,ui,学习,javascript,react
|
material-ui 组件,前端,ui,学习,javascript,react

2、按钮自定义颜色

使用Theme自定义颜色
创建Theme.jsx文件,编写自定义的样式

import {createTheme} from "@mui/material";
export const  theme = createTheme({
    palette: {
        primary: {
            main: '#000000',
        },
        secondary: {
            main: '#F5EBF7',
            light: '#F5EBFF',
            contrastText: '#47008F',
        },
    },
});

在index中使用ThemeProvider引入theme

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import reportWebVitals from './reportWebVitals';
import {ThemeProvider} from "@mui/material";
import {theme} from './Theme'

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
      <ThemeProvider theme={theme}>
          <App />
      </ThemeProvider>
  </React.StrictMode>
);

reportWebVitals();

最后在按钮中应用

import {Button, Stack} from "@mui/material";

function App() {
    return (
        <div >
            <Stack spacing={3}>
                <Button variant='contained' color="primary">主要的按钮</Button>
            </Stack>
        </div>
    );
}
export default App;

由于自定义的primary为黑色,所以最终按钮呈现黑色
material-ui 组件,前端,ui,学习,javascript,react

疑惑点:Button好像颜色属性只能从那7个属性值去选择。虽然可以自定义7个属性值的颜色。但是无法使用main、light、dark更为详细的定义。Box就可以定义具体的色调

export const  theme = createTheme({
    palette: {
        primary: {
            main: '#000000',
            light: '#F5EBF7',
            contrastText: '#80ff80',/*文本颜色*/
        },
        secondary: {
            main: '#F5EBF7',
            light: '#F5EBFF',
            contrastText: '#47008F',
        },
    },
});

也就是说Button组件默认就是main。不知道如何使用light。

3、Button按钮的尺寸

使用size属性申明

序号 属性 含义
1 size=“small” 小按钮
2 size=“medium” 中按钮
3 size=“large” 大按钮
import {Button, Stack} from "@mui/material";

function App() {
    return (
        <div >
            <Stack spacing={3}>
                <Button variant='contained' size="small">按钮1</Button>
                <Button variant='contained' size="medium">按钮2</Button>
                <Button variant='contained' size="large">按钮3</Button>
            </Stack>
        </div>
    );
}
export default App;

material-ui 组件,前端,ui,学习,javascript,react

3、图标按钮

使用图标,可以直接在Material Icons中选择,前提是安装icon库

yarn add @mui/icons-material @mui/material @emotion/styled @emotion/react

1、带有图标的按钮

序号 属性 含义
1 startIcon={<图标组件/>} 在按钮文字前面的图标
2 endIcon={<图标组件 />} 在按钮文字之后的图标
import {Button, Stack} from "@mui/material";
import DeleteIcon from '@mui/icons-material/Delete';
import SendIcon from '@mui/icons-material/Send';

function App() {
    return (
        <div >
            <Stack spacing={3}>
                <Button variant="outlined" startIcon={<DeleteIcon />}>
                    Delete
                </Button>
                <Button variant="contained" endIcon={<SendIcon />}>
                    Send
                </Button>
            </Stack>
        </div>
    );
}
export default App;

上面的代码引入了两个图标组件DeleteIcon 、SendIcon 。图标可以自定搜索
material-ui 组件,前端,ui,学习,javascript,react文章来源地址https://www.toymoban.com/news/detail-839496.html

到了这里,关于Material UI 5 学习01-按钮组件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第12章 最佳的UI体验——Material Design实战

    其实长久以来,大多数人都认为Android系统的UI并不算美观,至少没有iOS系统的美观。以至于很多IT公司在进行应用界面设计的时候,为了保证双平台的统一性,强制要求Android端的界面风格必须和iOS端一致。 这种情况在现实工作当中实在是太常见了,因为对于一般用户来说,他

    2024年04月26日
    浏览(40)
  • IDEA 插件 Material Theme UI收费后 免费的办法

    使用手动安装的方式 1.在官网找到10之前的版本,下载插件 https://plugins.jetbrains.com/plugin/8006-material-theme-ui/versions 6点10以下的就可以 2.手动在idea进行插件导入 重启idea即可使用主题了

    2024年02月13日
    浏览(80)
  • Material Design:为你的 Android 应用提供精美的 UI 体验

    介绍 Material Design 概念:介绍 Material Design 是 Google 推出的一种设计语言,用于创建现代、美观、直观且一致的用户界面。解释 Material Design 的基本原则,包括材料元素、动画、颜色和排版等。 Material Design UI 元素:介绍常用的 Material Design UI 元素,如卡片、按钮、文本字段、图

    2024年02月01日
    浏览(44)
  • nextjs构建服务端渲染,同时使用Material UI进行项目配置

    使用create-next-app来启动一个新的Next.js应用,它会自动为你设置好一切 运行命令: 执行结果如下:   启动项目: 执行结果:  启动成功!  根据Material UI官网介绍,截至2021年底,样式组件与服务器渲染的材质UI项目不兼容。这是因为babel-plugin风格的组件不能与@mui包中的style

    2024年02月08日
    浏览(50)
  • 使用Material UI模态框,打造精美弹窗效果的秘密

    让我们来了解一下 Material UI Modal - 一个酷炫的 React 组件! 你是否曾经想过在你的网页应用程序中添加弹出窗口以显示重要信息或帮助用户输入?那么 Material UI Modal 就是你的救星!Material UI 是一个由 Google 创建和维护的 UI 组件库,提供了一套全面的工具,用于创建用户界面。

    2024年02月05日
    浏览(45)
  • 基于Material Design风格开源、易用、强大的WPF UI控件库

    今天大姚给大家分享一款基于Material Design风格开源、免费(MIT License)、易于使用、强大的WPF UI控件库: MaterialDesignInXamlToolkit 。 MaterialDesignInXamlToolkit 是一个开源、易于使用、强大的 WPF UI 控件库,旨在帮助开发人员在 C# 和 VB.Net 中实现 Google 的 Material Design 风格的用户界面。

    2024年04月23日
    浏览(56)
  • 【1】Pycharm 主题设置推荐Material Theme UI以及编辑环境配置(字体大小和颜色)

    File - Settings - Plugins插件,搜索Material Theme UI 安装。 安装后重启pycharm设置自己喜欢的首选主题。 个人比较喜欢Oceanic主题。 :File - Settings - Editor - Font, Font: Source Code Pro,Size: 16, line-spacing: 1.0,应用。个人觉得这个设置比较舒服 :File - Settings - Editor - Color Scheme Font - General,

    2024年02月16日
    浏览(45)
  • WPF:.Net6框架下,使用Material Design过程中,配色和UI字体模糊的问题

    有关Material Design的使用方法,请自行参考这个链接 WPF使用Material Design 下面,直接上我碰到的问题及解决方式 默认情况下,Material Design是提供了很多主题配色,但难免有些太过“出挑”,不适合工控软件的风格。 所以,下面简单介绍一下手动配色的基础方法: 代表采用的是

    2024年02月06日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包