Opening a page in a new tab or window creates a new sessionhttps://developer.mozilla.org/en-US/docs/Web/API/W...
useReducer is usually preferable to useState when you have complex state logic that involves multiple sub-values or when the next state depends on the previous one.Как и говорил Kentavr16, здесь речь о том, что сложную логику проще писать через useReducer. Никакой скорости тут нет.
useReducer also lets you optimize performance for components that trigger deep updates because you can pass dispatch down instead of callbacks.Тут речь о том, что если передавать колбэки не оборачивая их в useCallback (т.е. создавая новый экземпляр функции каждый раз), будут лишние ререндеры всех компонентов между родительским с логикой и глубоко вложенным дочерним, где реально нужно что-то изменить. Но гораздо важнее то, что передавать так колбэки тупо многословнее - лишний код, неудобно. Написанное - редкий сценарий и из него ни в коем случае нельзя делать вывод "useReducer производительнее useState".
Да это и я понимаюЗачем тогда вы в заголовке вопроса написали, что не понимаете? ¯\_(ツ)_/¯
как это можно исправить или по другому реализоватьВсё зависит от того, чего вы хотите добиться. На таком упрощённом коде сложно понять реальную задачу, а конкретное решение подбирается именно под неё.