Components can contain several fields which are assignable through template attributes.
The properties should be wrapped with "Prop". The "Prop" type implements "Deref" so it can be dereferenced to the contained type.
Note that the property fields should be properly "pub" so that it can be assigned from templates in other rust modules.
Common properties are one-way: the component receives the value from its user.
Sometimes it is required to be two-way, e.g. synchronize input values between components.
In these cases, "BindingProp" and "BindingValue" can be used. However, the changes of two-way values do not automatically triggering the template update. A task should be manually generated if the template update is required.
Note that "BindingProp" and "BindingValue" do not implement "Deref" - use explicit getter functions to retrieve the value.