when you want to use <StrictMode> but do not want your useEffects to be repeated
import React, { useEffect, useRef } from 'react'
const useUnstrictEffect = function (og_func, deps) { const ref_obj = {} const ref_teardown = useRef() useEffect(() => { const id_timeout = setTimeout(() => { // do the original thing // const func_teardown = og_func() ref_teardown.current = () => { func_teardown() return } return }, 1) return () => { if (ref_teardown.current) { ref_teardown.current() ref_teardown.current = undefined } else { // immediate Unmount = STOP og_func from ever running clearTimeout(id_timeout) } return } }, (deps === undefined ? [] : deps)) return ref_obj}