当前位置:首页 > React

react 如何自适应屏幕

2026-03-10 20:48:39React

React 实现自适应屏幕的方法

使用 CSS 媒体查询

通过 CSS 媒体查询可以根据不同屏幕尺寸应用不同的样式。在 React 中可以直接在组件样式文件或全局 CSS 中定义媒体查询规则。

@media (max-width: 768px) {
  .container {
    width: 100%;
    padding: 10px;
  }
}

使用 Flexbox 或 Grid 布局

Flexbox 和 Grid 布局可以自动调整元素大小和位置,适合构建响应式界面。

.container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

使用百分比或视口单位

使用百分比(%)或视口单位(vwvh)可以让元素根据屏幕尺寸动态调整。

.box {
  width: 50%;
  height: 50vh;
}

使用 React 响应式 Hook

通过自定义 Hook 监听窗口尺寸变化,动态调整组件布局。

import { useState, useEffect } from 'react';

function useWindowSize() {
  const [size, setSize] = useState([window.innerWidth, window.innerHeight]);
  useEffect(() => {
    const handleResize = () => {
      setSize([window.innerWidth, window.innerHeight]);
    };
    window.addEventListener('resize', handleResize);
    return () => window.removeEventListener('resize', handleResize);
  }, []);
  return size;
}

function ResponsiveComponent() {
  const [width] = useWindowSize();
  return <div>{width < 768 ? 'Mobile' : 'Desktop'}</div>;
}

使用第三方库

一些第三方库如 react-responsivereact-sizeme 可以简化响应式开发。

import { useMediaQuery } from 'react-responsive';

function Example() {
  const isMobile = useMediaQuery({ query: '(max-width: 768px)' });
  return <div>{isMobile ? 'Mobile' : 'Desktop'}</div>;
}

动态加载组件

根据屏幕尺寸动态加载不同的组件,优化性能和用户体验。

const Component = React.lazy(() => 
  window.innerWidth < 768 
    ? import('./MobileComponent') 
    : import('./DesktopComponent')
);

图片和媒体适配

使用 srcsetpicture 标签适配不同分辨率的图片。

react 如何自适应屏幕

<img
  src="default.jpg"
  srcSet="small.jpg 500w, medium.jpg 1000w, large.jpg 2000w"
  sizes="(max-width: 600px) 500px, 1000px"
  alt="Responsive"
/>

通过以上方法,可以轻松实现 React 应用的自适应屏幕需求。

标签: 自适应屏幕
分享给朋友:

相关文章

vue实现屏幕适配

vue实现屏幕适配

Vue 实现屏幕适配的方法 使用 CSS 媒体查询 通过 CSS 媒体查询根据不同屏幕尺寸应用不同的样式规则。在 Vue 组件的 <style> 标签中直接编写媒体查询代码。 @medi…

vue项目实现自适应

vue项目实现自适应

实现Vue项目自适应的方案 使用CSS媒体查询 在Vue组件或全局CSS中定义不同屏幕尺寸下的样式规则。通过@media实现响应式布局,适配不同设备宽度。 /* 示例:移动端优先的媒体查询 */ .…

vue实现屏幕录像功能

vue实现屏幕录像功能

使用MediaDevices API捕获屏幕 在Vue中实现屏幕录像需要调用浏览器的MediaDevices API获取屏幕流。通过navigator.mediaDevices.getDisplayM…

PHP实现分享屏幕

PHP实现分享屏幕

PHP实现屏幕分享的方法 PHP本身无法直接捕获用户屏幕,但可以通过结合前端技术和后端处理实现屏幕分享功能。以下是几种常见方法: 使用WebRTC技术 WebRTC允许浏览器直接捕获屏幕并传输视频流…

vue实现屏幕截图

vue实现屏幕截图

Vue实现屏幕截图的方法 使用html2canvas库 安装html2canvas库: npm install html2canvas 在Vue组件中引入并使用: import html2canv…

vue实现屏幕适配

vue实现屏幕适配

Vue 实现屏幕适配的方法 使用 CSS 媒体查询 通过 CSS 的媒体查询功能,可以根据不同的屏幕尺寸应用不同的样式。在 Vue 组件的 <style> 标签中直接定义媒体查询规则。…