If you have a reusable element that you do not intend for the data sources to be always loaded, even when that reusable element is not visible on the page, you should add the data sources conditionally.
This means, for example of a repeating group, do not put the ‘do a search’ into the default data source. Instead create a condition, that is ‘when this reusable is visible’ and property to change is the data source. It is there you place your ‘do a search’.
This extends to API data. If you have an API call of type data, place the call conditionally as the data source.
This extends to references to other sources that may already not be visible :count operators. Your count operator will run an aggregate search (0.2 WU) even if the source referenced is not visible and the reusable is not visible. So for any text, that is displaying a count of items inside of a reusable, put a condition for ‘when reusable is visible’ and put the dynamic expression for the count as the text property there.
This extends to default values of reusable element properties. From personally example, for purposes of a pagination element, I have a property on the RE that is of type number, where I referenced the data source count. This default property value should be a conditional in the form of dynamic expression ‘when reusable is visible format as text (yes = dynamic expression for count; no = 0) converted to number’.
This is important for dashboards in which it is common to have multiple reusable elements that are the different views of the dashboard. You do not want your clients, or yourself, throwing away WUs. Also for SPAs that may not need to do a first load of all data for trying to improve perceived navigation between views.
Your goal should be that when a page with reusable elements is loaded without any of those reusable elements, to have no WU charges other than page is loaded, and maybe the ‘individual data request’ for current user.
Test for example a dashboard page, normally navigated via URL parameters to switch views, with empty navigation parameters, so a blank page is loaded…if there are data fetches or API data using up WUs those can be optimized away via simple conditions.