mirror of
https://github.com/status-im/re-frame.git
synced 2025-02-23 07:18:22 +00:00
13 lines
855 B
Markdown
13 lines
855 B
Markdown
|
|
||
|
## What About Event Ids?
|
||
|
|
||
|
As an app gets bigger, you'll tend to get clashes on event ids. 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 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.
|