The differences between a custom builder function (@Builder) and custom component are as follows:
However, a custom build function (@Builder) does not support the definition of state variables and lifecycles.
However, the custom build function (@Builder) uses the default value-based parameter passing approach, which cannot be used for dynamic UI updates. When the passed-in parameter is a state variable, the change of the state variable does not cause UI updates in the @Builder method. To implement dynamic UI updates, parameters must be passed by reference.
For details about the implementation, see @BuilderParam Decorator: @Builder Function Reference.