-
[React / Three] useRef / useEffect / useFrameReactjs/Threejs 2023. 1. 16. 06:27
1. useRef
구성 요소 인스턴스의 속성을 읽거나 수정하려는 경우, 해당 인스턴스에 대한 참조를 가져올때 사용한다.
2. useEffect
구성 요소가 렌더링 후 작업을 수행해야 함을 React에 다시 알린다. 여기에서는 Three.js 객체로 변환하고 그 속성을 다시 가져와 로직을 수행하도록 한다. -> Three.js 객체 정보를 이용할때 useRef와 함께 사용
import { useRef, useEffect } from 'react' export default function Box(props) { const ref = useRef() useEffect(() => { console.log(ref.current) }) return ( <mesh {...props} ref={ref}> <boxGeometry /> <meshBasicMaterial color={0x00ff00} wireframe /> </mesh> ) }
3. useFrame
매 렌더링된 프레임 전에 코드를 실행할때 유용한, React Three Fiber hook이다. 아래는 JSX가 Three.js 객체로 변환된 후 현재 프레임이 캔버스에 렌더링 직전에 호출된다.
import { useRef } from 'react' import { useFrame } from '@react-three/fiber' export default function Box(props) { const ref = useRef() useFrame((_, delta) => { ref.current.rotation.x += 1 * delta ref.current.rotation.y += 0.5 * delta }) return ( <mesh {...props} ref={ref}> <boxGeometry /> <meshBasicMaterial color={0x00ff00} wireframe /> </mesh> ) }
'Reactjs > Threejs' 카테고리의 다른 글
[React / Three] Leva (0) 2023.01.20 [React / Three] AxisHelper / GridHelper (0) 2023.01.19 [React / Three] Stats Panel / OrbitControls (0) 2023.01.19 [React / Three] Events (0) 2023.01.17 [React / Three] 새 프로젝트 시작하기 (0) 2023.01.13