It's possible to convince Apostrophe to run from a "subdirectory" (i.e. prefix all URLs with a given string). It's not the primary use case but we have the occasional client who insists on it, and then they use their reverse proxy to map it into their main site, etc.
To do that, you set the "prefix" option in app.js. It's a top-level option, like shortName. You don't pass it to a specific module.
Once you do that, you'll have to go to http://localhost:3000/your-prefix to see the home page when testing, and so on.
As for accessing the blog content from React, it's very easy to add APIs that respond with JSON, HTML, etc. via the self.route method of any module.