I am new to React and experimenting a bit. I would like to use it on my Flask site that uses Jinja2 templates.
People seem to recommend to render data on the server-sid
You can certainly use it on sites that have server side rendering via Jinja. The question becomes - what do you want to update on the page without reloading? Usually, the component state in React is updated via user interaction or a changing data source (i.e. db API).
My experience has been to render (via Jinja) the static page data and then use React components to update based on and/or listen for changes to the state of an API (maybe through Flask-Restful). These APIs can be accessed through React's life cycle methods (usually 'getInitialState' or 'setState')
For example - you may have portions of your site that are rendered server-side in layout.html
and then the {% block content %}
is rendered client side by the React js components.
{% extends "layout.html" %}
{% block content %}
Some Header
{% endblock %}
I really recommend going through the React Tutorial and trying to apply it to a Flask App.