Use Vanta JS with React Class Components
masterInstall via npm i vanta. Ensure three.js is available on the window object. Use React.createRef() to target the element and initialize the effect in componentDidMount. Call .destroy() in componentWillUnmount.
import React from 'react'
import BIRDS from 'vanta/dist/vanta.birds.min'
// Make sure window.THREE is defined, e.g. by including three.min.js in the document head using a <script> tag
class MyComponent extends React.Component {
constructor() {
super()
this.vantaRef = React.createRef()
}
componentDidMount() {
this.vantaEffect = BIRDS({
el: this.vantaRef.current
})
}
componentWillUnmount() {
if (this.vantaEffect) this.vantaEffect.destroy()
}
render() {
return <div ref={this.vantaRef}>
Foreground content goes here
</div>
}
}