Вы можете использовать useMemo для создания экземпляра HelperClass и useEffect для его вызова. Предоставление им обоих пустого массива зависимостей означает, что они будут вызываться только «при монтировании». Я включил mount в кавычках, потому что memo будет вызываться только при первом рендеринге, а эффект будет вызываться после завершения первого цикла рендеринга.
const StatelessFunction = props => {
const helper = useMemo(() => new HelperClass(), []);
useEffect(() => {
helper.doSomething();
}, [helper]);
return (<JSX />);
};
Если единственное, что ты когда-либо сделаешь, это просто вызов doSomething иникогда не используйте экземпляр помощника снова, вы можете просто сделать это с помощью useEffect:
useEffect(() => {
new HelperClass().doSomething();
}, []);
Если вы планируете использовать экземпляр помощника позже, вы можете использовать предыдущий пример с useMemo или useRef:
const helper = useRef();
useEffect(() => {
helper.current = new HelperClass();
//only called once after first render
helper.current.doSomething();
}, []);
//you still have the helper instance as helper.current