0


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";functionApp(){return(<div><Button>这是一个按钮</Button></div>);}exportdefault App;

在这里插入图片描述
可以看出,最基本的按钮没有边框,字体默认是蓝色的,其鼠标点击上去有背景颜色,是淡蓝色。其他的就没有什么了。
在这里插入图片描述

2、variant属性

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

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

在这里插入图片描述

3、禁用按钮

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

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

4、可跳转的按钮

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

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

在这里插入图片描述

5、disableElevation属性

disableElevation是禁用阴影的意思。加上此属性,那么点击按钮没有阴影。
默认的按钮点击之后都存在阴影,左边的按钮是默认的按钮,右边的加了disableElevation属性,因此右边的点击没有阴影
在这里插入图片描述
在这里插入图片描述

6、按钮的点击事件onClick

import{Button}from"@mui/material";functionApp(){constshowData=()=>{alert('按钮被点击了');}return(<div><Button onClick={showData} variant='contained'>按钮</Button></div>);}exportdefault App;

上面的代码也可以简写:

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

2、Button按钮的颜色和尺寸

1、Button按钮的颜色

按钮使用color属性即可设置值:color=“primary”
默认的按钮属性值有7个
序号属性值含义1color=“inherit”按钮文字的颜色取决于父组件的颜色2color=“primary”强调重要行为的按钮1color=“secondary”次要行为的按钮1color=“success”显示操作成功的按钮1color=“error”显示操作错误的按钮1color=“info”陈述按钮1color=“warning”警告按钮
在这里插入图片描述
|
在这里插入图片描述

2、按钮自定义颜色

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

import{createTheme}from"@mui/material";exportconst  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";functionApp(){return(<div ><Stack spacing={3}><Button variant='contained' color="primary">主要的按钮</Button></Stack></div>);}exportdefault App;

由于自定义的primary为黑色,所以最终按钮呈现黑色
在这里插入图片描述

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

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

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

3、Button按钮的尺寸

使用size属性申明
序号属性含义1size=“small”小按钮2size=“medium”中按钮3size=“large”大按钮

import{Button, Stack}from"@mui/material";functionApp(){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>);}exportdefault App;

在这里插入图片描述

3、图标按钮

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

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

1、带有图标的按钮

序号属性含义1startIcon={<图标组件/>}在按钮文字前面的图标2endIcon={<图标组件 />}在按钮文字之后的图标

import{Button, Stack}from"@mui/material";import DeleteIcon from'@mui/icons-material/Delete';import SendIcon from'@mui/icons-material/Send';functionApp(){return(<div ><Stack spacing={3}><Button variant="outlined" startIcon={<DeleteIcon />}>
                    Delete
                </Button><Button variant="contained" endIcon={<SendIcon />}>
                    Send
                </Button></Stack></div>);}exportdefault App;

上面的代码引入了两个图标组件DeleteIcon 、SendIcon 。图标可以自定搜索
在这里插入图片描述

标签: ui 学习 javascript

本文转载自: https://blog.csdn.net/GoSaint/article/details/136434216
版权归原作者 大佛拈花 所有, 如有侵权,请联系我们删除。

“Material UI 5 学习01-按钮组件”的评论:

还没有评论