在 ClojureScript 中使用帽子 (^) 字符
Use of the hat (^) character in ClojureScript
我对下面代码中帽子字符 (^) 的使用感到困惑,它已从 reagent-phonecat 中删除。
^{:key phone} [phone-component phone]
phone-component
本身是一个函数(但不会像在向量中那样被调用)并且 phone
将是一个带有 :battery
等键的映射。
我的 research 说 ^
表示元数据或类型提示,但没有帮助!
这是文件:core.cljs。
通过文件后,我可以看出 phone-component 是一个函数宏。
这个宏可以用来调用函数。宏接受 phone 键作为输入和 returns 有关 phone 的详细信息。
Link 可能会有一些帮助
http://java.ociweb.com/mark/clojure/article.html
首先确保您了解 key
在反应中的作用,因为试剂只是将其传递给 React:
http://facebook.github.io/react/docs/multiple-components.html#dynamic-children
[...] you can uniquely identify each child by assigning it a key:
[...]
When React reconciles the keyed children, it will ensure that any child with key will be reordered (instead of clobbered) or destroyed (instead of reused).
接下来,^{...}
构造只是 clojure 将元数据附加到下一个 表单:
http://clojure.org/reader#The%20Reader--Macro%20characters
注意:在本例中不是类型提示。这将需要一个 :tag
元数据密钥。
本例中的下一个形式是一个简单的向量 [..]
,其中您的第一个元素是对您要(最终)调用的组件的引用。
Reagent 采用数据结构(嵌套向量)并将生成虚拟 DOM 元素并将其传递给反应。它还会调用嵌套组件。
因此,试剂将读取您 return 的每个向量的元数据,并传递您指定要反应的任何 :key
。这只是为了让 React 可以识别每次重新渲染中的元素。
因此,在您的情况下,phone
将作为密钥结束传递以做出反应。请注意,该键最终将作为反应元素的 DOM 属性中的字符串。所以最好传入一个不太长的字符串,以免弄乱你的 DOM 属性。
我对下面代码中帽子字符 (^) 的使用感到困惑,它已从 reagent-phonecat 中删除。
^{:key phone} [phone-component phone]
phone-component
本身是一个函数(但不会像在向量中那样被调用)并且 phone
将是一个带有 :battery
等键的映射。
我的 research 说 ^
表示元数据或类型提示,但没有帮助!
这是文件:core.cljs。
通过文件后,我可以看出 phone-component 是一个函数宏。
这个宏可以用来调用函数。宏接受 phone 键作为输入和 returns 有关 phone 的详细信息。
Link 可能会有一些帮助 http://java.ociweb.com/mark/clojure/article.html
首先确保您了解 key
在反应中的作用,因为试剂只是将其传递给 React:
http://facebook.github.io/react/docs/multiple-components.html#dynamic-children
[...] you can uniquely identify each child by assigning it a key:
[...]
When React reconciles the keyed children, it will ensure that any child with key will be reordered (instead of clobbered) or destroyed (instead of reused).
接下来,^{...}
构造只是 clojure 将元数据附加到下一个 表单:
http://clojure.org/reader#The%20Reader--Macro%20characters
注意:在本例中不是类型提示。这将需要一个 :tag
元数据密钥。
本例中的下一个形式是一个简单的向量 [..]
,其中您的第一个元素是对您要(最终)调用的组件的引用。
Reagent 采用数据结构(嵌套向量)并将生成虚拟 DOM 元素并将其传递给反应。它还会调用嵌套组件。
因此,试剂将读取您 return 的每个向量的元数据,并传递您指定要反应的任何 :key
。这只是为了让 React 可以识别每次重新渲染中的元素。
因此,在您的情况下,phone
将作为密钥结束传递以做出反应。请注意,该键最终将作为反应元素的 DOM 属性中的字符串。所以最好传入一个不太长的字符串,以免弄乱你的 DOM 属性。