How do I correctly access variables using 'render' instead of 'include'?

Hi

Now that ‘include’ is legacy, what’s the correct way to make variable accessible?

I’ve got a complicated snippet, which essentially created a handful of variables. It’s used about 20 times in the theme, so I’d like to avoid having 20 copies of it.

Something like:

{% liquid if product.handle contains foo
  assign var1 = 1
  assign var2 = 2
...

I’d use it like this:

{% include 'snippet' %}
{{ var1 }}

That doesn’t work with ‘render’, and I can’t find a mention of a way to do it correctly.

Would anyone be able to point me in the right direction?

Many thanks!