Found very weird ReactJS element systax {..props} in mesh element, Why is {...props} inside "mesh", Usually if there is then it can have properties but in this case its taking {..props}, How does this systax work and what is it doing with {..props}, Is it declaring it ? Can props be used in rest of element like <mesh {...props} att="{props.el}" />
const ref = useRef()
// Hold state for hovered and clicked events
const [hovered, hover] = useState(false)
const [clicked, click] = useState(false)
// Subscribe this component to the render-loop, rotate the mesh every frame
//useFrame((state, delta) => (ref.current.rotation.x += delta))
// Return the view, these are regular Threejs elements expressed in JSX
return (
<mesh
{...props}
ref={ref}
scale={clicked ? 1.5 : 1}
onClick={(event) => click(!clicked)}
onPointerOver={(event) => hover(true)}
onPointerOut={(event) => hover(false)}>
<boxGeometry args={[2, 2, 2]} />
<meshBasicMaterial color={hovered ? 'hotpink' : 'brown'} />
</mesh>
)
}