当前位置: 首页 > wzjs >正文

asp 网站建设教程济南seo优化公司助力网站腾飞

asp 网站建设教程,济南seo优化公司助力网站腾飞,杭州网站建设优化推广,网站头部模板不明白的知识先放在一边,激发兴趣是第一步,所以不必纠结代码的细节,相信我你很快就会爱上这种感觉!!! 今天,我们将更进一步,将上一篇中vite npm传统 Three.js 原生代码完整 重构为 …

不明白的知识先放在一边,激发兴趣是第一步,所以不必纠结代码的细节,相信我你很快就会爱上这种感觉!!!

今天,我们将更进一步,将上一篇中vite + npm传统 Three.js 原生代码完整 重构为 react-three-fiber 风格

本文将带你完成以下目标:

  • ✅ 使用 React 重构原生 Three.js 场景
  • ✅ 拆分组件化结构,实现同样效果
  • ✅ 保留交互、动画、响应式特性

推荐网站地址
官方文档https://r3f.docs.pmnd.rs/getting-started
优秀中文文档https://fiber.framer.wiki/Introduction

🌟 为什么选择 react-three-fiber?

react-three-fiber 是一个将 Three.js 映射为 React 声明式组件的库,优点包括:

  • ✅ 完全响应式、组合式
  • ✅ 更容易重用组件
  • ✅ 支持 Suspense、hooks、reactivity 等 React 特性
  • ✅ 社区活跃,生态丰富(如 drei、leva、postprocessing 等)

📦 创建项目 & 安装依赖

npm create vite@latest r3f-demo --template reactcd r3f-demonpm installnpm install three @react-three/fiber @react-three/drei

📁 项目结构推荐

src/
├── App.jsx
├── components/
│   ├── Dodecahedron.jsx
│   ├── BaseBox.jsx
│   └── Lights.jsx
└── main.jsx

🎮 主组件 App.jsx

import { Canvas } from '@react-three/fiber';
import { OrbitControls } from '@react-three/drei';
import Dodecahedron from './components/Dodecahedron';
import BaseBox from './components/BaseBox';
import Lights from './components/Lights';export default function App() {return (<Canvascamera={{ position: [0, 0, 5], fov: 75 }}style={{ width: '100vw', height: '100vh' }}><color attach="background" args={['#f0f0f0']} /><Lights /><Dodecahedron /><BaseBox /><OrbitControls enableDamping dampingFactor={0.05} /></Canvas>);
}

🎲 十二面体组件 Dodecahedron.jsx

import { useRef } from 'react';
import { useFrame } from '@react-three/fiber';export default function Dodecahedron() {const ref = useRef();useFrame(() => {ref.current.rotation.x += 0.01;ref.current.rotation.y += 0.01;});return (<mesh ref={ref}><dodecahedronGeometry /><meshLambertMaterialcolor="#468585"emissive="#468585"/></mesh>);
}

🟫 底座方块组件 BaseBox.jsx

import { useRef } from 'react';
import { useFrame } from '@react-three/fiber';export default function BaseBox() {const ref = useRef();useFrame(() => {ref.current.rotation.y += 0.01;});return (<mesh ref={ref} position={[0, -1.5, 0]}><boxGeometry args={[2, 0.1, 2]} /><meshLambertMaterialcolor="#b4b4b3"emissive="#b4b4b3"/></mesh>);
}

💡 灯光组件 Lights.jsx

export default function Lights() {return (<><ambientLight intensity={0.3} /><spotLightcolor="#006769"intensity={100}position={[1, 1, 1]}castShadow/></>);
}

🎉 完整效果

你现在应该能看到:

  • 一个旋转的 十二面体

  • 一个缓慢转动的 底座

  • 柔和背景光与 聚光灯打亮对象

  • OrbitControls 支持拖拽、缩放、平移

  • 窗口缩放自动适配 ✅

效果与原生写法完全一致,但代码组织更清晰,扩展性更强 🧩

当然你可以直接在我分享的stackblitz中直接尝试更改一些代码,以获得不同的效果。

演示地址:https://stackblitz.com/edit/vitejs-vite-awnvthyl?file=src%2Fcomponents%2FBaseBox.jsx 💻

react-r3f

📌 小结

今天我们在保留原始功能和视觉效果的前提下,体验如何在 React 世界中优雅重建:

  • 🎲 使用十二面体(DodecahedronGeometry
  • 🎁 加一个带有旋转的方形底座
  • 💡 添加聚光灯
  • 🖱️ 支持轨道控制器(OrbitControls)
  • 🎥 响应式相机 + 窗口缩放适配
  • ✨ 使用现代组件拆分方式组织项目结构

🔮 下一篇预告:3D 个人主页实战 · 第一部分


在接下来的系列中,我们将打造一个 交互式的 3D 个人主页,内容包括:
  • 📦 准备 3D 模型资源

  • 🏗️ 搭建场景结构骨架

  • 🚪各种准备工作

敬请期待 👀

个人主页

http://www.dtcms.com/wzjs/44636.html

相关文章:

  • 西安做网站建设的郑州做网站的专业公司
  • 剖析材料范文哪个网站做的好查网站权重
  • wap手机网站模板百度优化是什么
  • 做h动漫的动漫视频在线观看网站充电宝seo关键词优化
  • 企业培训 电子商务网站建设 图片电脑版百度入口
  • 做果蔬行业的网站智能营销系统
  • 响应式网站建设信息制作网站建设入门
  • 一些网站只能在微信打开怎么做的什么是互联网营销
  • 做一个赚钱的网站什么是seo文章
  • 湖南住房和城乡建设厅网站首页互联网推广运营
  • 十大黑心装修公司北京seo运营
  • 云南楚雄天气预报黄山seo公司
  • 长沙网站制作公司有哪些营销策划公司
  • html如果制作一个内容多的网站外贸网站优化公司
  • 全flash网站制作seo平台
  • 金华手机网站建设百度小说排行榜2020
  • 阿里云服务器做电影网站web制作网站的模板
  • ps做景观有哪些素材网站二级域名网站查询入口
  • 金华正规网站建设总部百度推广价格价目表
  • 做家教的正规网站微信推广广告在哪里做
  • 网站建设书籍济宁seo推广
  • 长沙景点门票价格表关键词优化排名
  • 芜湖公司企业排名seo教程排名第一
  • 网站建设的市场策划首页排名seo
  • 互助平台网站建设费用专业地推团队
  • 南宁排名推广山东自助seo建站
  • 深圳市龙岗区做网站的公司seo行业网
  • 石家庄网站建设蓝点广告推广平台赚取佣金
  • sqlite 做网站深圳华强北新闻最新消息今天
  • wordpress虚拟储存安卓优化大师官方版本下载