GQless performs a invisible render (called the skeleton render) of all components, to identify the data they need. During this render, all scalars & enums are returned as
undefined (aka. skeleton values).
Once the response from the server arrives, these skeleton values are replaced with actual ones.
It's important to be aware of skeleton values, as using them as keys will result in a warning:
You can overcome this using either destructuring,
or the nullish coalescing operator:
GQless performs a invisible render of all components, to identify the data they need. Once the data is fetched — scalars, nulls, and array sizes are filled in.
In the code-generated files, an object representation of the schema is outputted - negligible for most apps. This could be optimized in the future by stripping out unused parts.
The gqless packages are lightweight and don't require external dependencies.
Very fast, gqless's architecture was designed with performance in mind. Unlike other clients, queries are generated directly - instead of outputting intermediate AST.