Stateful components like
their state in the socket's
assigns. In Surface, those assigns are called
In order to declare a data assign, you must use the
data name, type, options
name- is the name of the assign.
type- an atom defining the type of the assign. See all available types in section "Properties > Property types".
options- a keyword list of options for additional customization.
default- defines a default value for the assign.
values- the list of possible values for the assign.
In the following example, we create a simple
Counter component that has its state
defined by a single assign named
count. You can use the
+ buttons to
decrement/increment the counter's value.
Note: Since we defined a default value for
count, we don't need to implement the
mount/1callback to initialize it. All
dataassigns with default values will be automatically initialized by Surface.