While my current shop is heavily invested in React, I don't personally have a dog in the fight between hooks and class components. I'm more interested here in the general sense of the value of code reuse.
My experience is that reuse in software - from function to library to service - requires cross-disciplinary buy-in as a strategy. For example, your engineering team can craft reusable componentry with well-defined contracts and perfect abstractions, but if your UX and Product teams aren't bought in on reusing the same header across the four apps you build? It's all for naught... you'll end up with either four different headers or leaky abstractions or blown-up contracts. Or all three.