package modifiers
- Alphabetic
- Public
- Protected
Type Members
- trait Binder[-El <: Base] extends Modifier[El]
Binder is a Modifier that creates a subscription when invoked.
Binder is a Modifier that creates a subscription when invoked. - Note, this Modifier is NOT idempotent: Calling it N times will create and bind N subscriptions -
onMountBind
can take care of this, see the docs - class CompositeKeySetter[K <: Key, -El <: Base] extends Setter[El]
This is like KeySetter, but for composite attributes like
cls
androle
.This is like KeySetter, but for composite attributes like
cls
androle
.CompositeKeySetter can not be a subtype of KeySetter because we can not implement
val value
– the actual value to be set is dynamic, depending on the current value of the element's composite attribute.Also, if you call
cls := "class2"
after callingcls := "class1"
, you end up with two classes instead of just "class2", which is different fro KeySetter semantics.Note: for dynamic subscriptions (<--), we use KeyUpdater for all keys including composite attributes.
- class EventListener[Ev <: Event, Out] extends Binder[Base]
- class KeySetter[K <: Key, V, -El <: Base] extends Setter[El]
This class represents a modifier that sets a Key (e.g.
This class represents a modifier that sets a Key (e.g. an attribute or a style) to a specific value on a El. action is what performs this change.
These modifiers are not only idempotent, but are also expected to be undoable, that is, calling
key := value2
will overridekey := value1
. In contrast, that is not the case forcls := "class"
for example, which *adds* a class instead of *setting* it. Suchcls
modifiers are CompositeKeySetter, which does not extend KeySetter. // #TODO the naming of these traits is confusing... - class KeyUpdater[-El <: Base, +K <: Key, V] extends Binder[El]
A modifier that updates a key from a source, e.g.
A modifier that updates a key from a source, e.g.
value <-- valueStream
- trait Modifier[-El <: Base] extends AnyRef
This type represents an operation that has a side effect on a node of type El.
This type represents an operation that has a side effect on a node of type El.
For example:
href := "http://example.com"
is a Modifier that sets the href attribute to an example URL when invoked on an element (typically when the element is created, or if the modifier is added after the fact using theamend
method, or by manually calling itsapply
method).If you choose to extend this trait, make sure to understand how to use Transaction.onStart.shared. In simple cases, wrapping your callback in it similarly to Modifier.apply below will probably work. See https://github.com/raquo/Airstream/#restarting-streams-that-depend-on-signals--signalchanges-
- trait RenderableNode[-Component] extends AnyRef
RenderableNode[Component]
is evidence that you can convert a Component to a Laminar ChildNode.RenderableNode[Component]
is evidence that you can convert a Component to a Laminar ChildNode.If you have an implicit val of RenderableNode[Component], Laminar can render your Component-s by converting them to ChildNode-s, and will accept your Component-s in
child <--
,children <--
, etc.A
Component
must have a 1-to-1 relationship to a Laminar ChildNode. Your Component class/trait should have something likeval node: ChildNode.Base
orlazy val node: ChildNode.Base
in it, it must not be avar
or adef
.See also – RenderableText
- Annotations
- @implicitNotFound()
- trait RenderableSeq[-Collection[_]] extends AnyRef
- trait RenderableText[-TextLike] extends AnyRef
RenderableText[A]
is evidence that you can convert a value of type A to a string for the purpose of rendering it as a TextNode.RenderableText[A]
is evidence that you can convert a value of type A to a string for the purpose of rendering it as a TextNode.If you have an implicit val of RenderableText[A], Laminar can render your
A
type values by converting them to strings (and ultimately into com.raquo.laminar.nodes.TextNode), and will accept your values as a valid Modifier, and inchild.text <--
.See also – RenderableNode
- Annotations
- @implicitNotFound()
- trait Setter[-El <: Base] extends Modifier[El]
This type represents a modifier that sets a "property" of an element.
This type represents a modifier that sets a "property" of an element.
It could be an html attribute, an event prop, or even a custom focus prop, the main constraint is that it should be idempotent, so that applying it several times in a row would produce the same effect as applying it once.
That way we can provide it to onMountSet { c => setter } and expect things to work if the element is mounted several times. However, note that CompositeKeySetter has special behaviour.
Value Members
- object Binder
- object EventListener
- object KeySetter
- object KeyUpdater
- object Modifier
- object RenderableNode
- object RenderableSeq
- object RenderableText
- object Setter