这是一个基于 React + Vite 构建的小红书内容创作平台界面,完全复制了小红书官方创作服务平台的设计和功能。
安装依赖
npm install
启动开发服务器
npm run dev
打开浏览器
http://localhost:5173
构建生产版本
npm run build
发布页面/ ├── public/ # 静态资源 │ └── vite.svg # Vite 图标 ├── src/ │ ├── App.jsx # 主应用组件 │ ├── App.css # 主样式文件 │ ├── index.css # 全局样式 │ └── main.jsx # 应用入口 ├── index.html # HTML 入口文件 ├── package.json # 项目配置 ├── vite.config.js # Vite 配置 └── README.md # 项目说明
const handleFileUpload = () => { const input = document.createElement('input') input.type = 'file' input.accept = activeTab === 'video' ? 'video/*' : 'image/*' input.multiple = activeTab === 'image' input.onchange = (e) => { const files = Array.from(e.target.files) if (files.length > 0 && validateFiles(files)) { simulateUpload(files) } } input.click() }
const handleDrop = (e) => { e.preventDefault() e.stopPropagation() setIsDragOver(false) const files = Array.from(e.dataTransfer.files) if (files.length > 0 && validateFiles(files)) { simulateUpload(files) } }
const validateFiles = (files) => { const validImageTypes = ['image/jpeg', 'image/jpg', 'image/png', 'image/webp'] const validVideoTypes = ['video/mp4', 'video/mov', 'video/avi'] const validTypes = activeTab === 'video' ? validVideoTypes : validImageTypes const maxSize = activeTab === 'video' ? 2 * 1024 * 1024 * 1024 : 32 * 1024 * 1024 return files.every(file => validTypes.includes(file.type) && file.size <= maxSize ) }
这个项目完全基于前端实现,所有的上传功能都是模拟的。文件预览使用了 URL.createObjectURL()
来生成本地预览链接。在实际部署时,需要:
MIT License
注意:本项目仅用于学习和演示目的,请遵守相关法律法规和平台使用条款。