1.使用方法
import useResponsive from '../../hooks/useResponsive';
const smUp = useResponsive('up', 'sm');
const mdUp = useResponsive('up', 'md');
function(){
return (
{smUp && (
<Typography variant="body2" sx={{ mt: { md: -2 } }}>
Don’t have an account? {''}
<NextLink href={PATH_AUTH.register} passHref>
<Link variant="subtitle2">Get started</Link>
</NextLink>
</Typography>
)}
</HeaderStyle>
{mdUp && (
<LoginLeft/>
)}
{!smUp && (
<Typography variant="body2" align="center" sx={{ mt: 3 }}>
Don’t have an account?{' '}
<NextLink href={PATH_AUTH.register} passHref>
<Link variant="subtitle2">Get started</Link>
</NextLink>
</Typography>
)}
)
}
2.根据mui封装的hook
hooks/useResponsive
import { Breakpoint } from '@mui/material';
import { useTheme } from '@mui/material/styles';
import useMediaQuery from '@mui/material/useMediaQuery';
// ----------------------------------------------------------------------
type Query = 'up' | 'down' | 'between' | 'only';
type Key = Breakpoint | number;
type Start = Breakpoint | number;
type End = Breakpoint | number;
export default function useResponsive(query: Query, key?: Key, start?: Start, end?: End) {
const theme = useTheme();
const mediaUp = useMediaQuery(theme.breakpoints.up(key as Key));
const mediaDown = useMediaQuery(theme.breakpoints.down(key as Key));
const mediaBetween = useMediaQuery(theme.breakpoints.between(start as Start, end as End));
const mediaOnly = useMediaQuery(theme.breakpoints.only(key as Breakpoint));
if (query === 'up') {
return mediaUp;
}
if (query === 'down') {
return mediaDown;
}
if (query === 'between') {
return mediaBetween;
}
if (query === 'only') {
return mediaOnly;
}
}
3.Mui官网关于useMediaQuery的描述
监听与 CSS 媒体查询的匹配的内容https://mui.com/zh/components/use-media-query/
在项目中是结合了另外两个Api….暂时没看