import React, { Suspense, useEffect, useMemo, useRef ,useState} from 'react' import { Canvas, useThree } from '@react-three/fiber' import Scene from './scene' // 获取 URL 参数 src:完整模型链接 max:最大缩放比 min:最小缩放比 function readParams() { const params = new URLSearchParams(window.location.search) const src = params.get('src') || '' const rawMin = Number(params.get('min')) const rawMax = Number(params.get('max')) const minZoom = Number.isFinite(rawMin) && rawMin > 0 ? rawMin : 1 const maxZoom = Number.isFinite(rawMax) && rawMax > 0 ? rawMax : 4 let zoomMin = Math.min(minZoom, maxZoom) const zoomMax = Math.max(minZoom, maxZoom) zoomMin = Math.max(1, zoomMin) const progressColor = params.get('progressColor') return { src, zoomMin, zoomMax, progressColor } } export default function App() { const { src, zoomMin, zoomMax, progressColor } = useMemo(readParams, []) return (