910 B
Namespaced Ids
As an app gets bigger, you'll tend to get clashes on ids - event-ids, or query-ids (subscriptions), etc.
One panel will need to dispatch
an :edit
event and so will
another, but the two panels will have different handlers.
So how then to not have a clash? How then to distinguish between
one :edit
event and another?
Your goal should be to use event-ids which encode both the event
itself (:edit
?) and the context (:panel1
or :panel2
?).
Luckily, ClojureScript provides a nice easy solution: use keywords
with a synthetic namespace. Perhaps something like :panel1/edit
and :panel2/edit
.
You see, ClojureScript allows the namespace in a keyword to be a total
fiction. I can have the keyword :panel1/edit
even though
panel1.cljs
doesn't exist.
Naturally, you'll take advantage of this by using keyword namespaces which are both unique and descriptive.