Fei*_*anZ 4 syntax clojure clojurescript om
在 Om Next Quick Start 中,他们使用#js和#uuid。这里的英镑符号是什么意思?
链接:https : //github.com/omcljs/om/wiki/Quick-Start-(om.next)#components-with-queries--mutations
片段:
#js:
(defui Counter
static om/IQuery
(query [this]
[:count])
Object
(render [this]
(let [{:keys [count]} (om/props this)]
(dom/div nil
(dom/span nil (str "Count: " count))
(dom/button
#js {:onClick
(fn [e] (om/transact! this '[(increment)]))}
"Click me!")))))
Run Code Online (Sandbox Code Playgroud)
#uuid:
(om/from-history reconciler
#uuid "9e7160a0-89cc-4482-aba1-7b894a1c54b4")
Run Code Online (Sandbox Code Playgroud)
在 EDN 和 ClojureScript 中常见的这种 # 用法称为标记文字。看这个例子,
user=> (java.util.Date.)
#inst "2014-05-19T19:12:37.925-00:00"
Run Code Online (Sandbox Code Playgroud)
当我们创建一个新日期时,它被表示为一个带标签的文字,或者在这种情况下是一个带标签的字符串。我们可以使用 Clojures read-string 来读回这个(或者直接使用它)
user=> (type #inst "2014-05-19T19:12:37.925-00:00")
java.util.Date
(read-string "#inst \"2014-05-19T19:12:37.925-00:00\"")
#inst "2014-05-19T19:12:37.925-00:00"
user=> (type (read-string "#inst \"2014-05-19T19:12:37.925-00:00\""))
java.util.Date
Run Code Online (Sandbox Code Playgroud)
标记文字告诉读者如何解析文字值。其他常见用途包括用于生成 UUID 的 #uuid,并且在 ClojureScript 世界中,标记文字的一个极其常见的用途是 #js,它可用于将 ClojureScript 数据结构直接转换为 JavaScript 结构。