Most applications will leave the key management aspect to a third party-party wallet, which handles the storage of the private key, usinguses it to sign transactions, and offers various utility operations like checking your token balances.
Consider using something like the Solana Wallet Adapter (which has React support) instead of storing the private keys yourself. Rolling your own "wallet" within the application is possible, but security is hard and the benefits are dubious. Also, your users will likely prefer to use a well-known wallet such as Phantom, vs trusting your application to keep their private key secure.