Typewriter effect

View code
// Vanilla JS
let i = 0;
const txt = 'Doing some nice type writing effect!
Added also a line break!';
const speed = 50;

function typeWriter() {
  if (i < txt.length) {
    document.querySelector("#someId").innerHTML += txt.charAt(i);
    i++;
    setTimeout(typeWriter, speed);
  }
}

typeWriter()

// React
const [typeText, setTypeText] = useState('')
const [i, setI] = useState(0)
const txt = 'Doing some nice type writing effect!
Added also a line break!'
const speed = 40

useEffect(() => {
  if(i < txt.length) {
    const timeout = setTimeout(() => {
      setTypeText((prev) => prev + txt.charAt(i))
      setI((prev) => prev + 1)
    }, speed)
    return () => clearTimeout(timeout)
  }
}, [i, txt, speed])