为什么在这个ClojureScript片段中使用^字符?

时间:2016-05-09 09:21:36

标签: clojure clojurescript re-frame

在clojurescript重新构建todomvc应用程序中,我们在todomvc.views 命名空间中找到以下代码段。

(defn todo-list
  [visible-todos]
  [:ul.todo-list
   (for [todo  @visible-todos]
     ^{:key (:id todo)} [todo-item todo])])

虽然我已阅读metadata上的Clojure章节,但我不太明白其目的:

^{:key

在上面的代码段中。请解释一下。

1 个答案:

答案 0 :(得分:3)

当您有许多项目时,$(window).bind('resize', function(e){ width = $(window).width(); if (width < 767){ $("a.collapseListBt").show(); // do something here if ($('.content-box-right').hasClass('show')){ $('.content-box-right').removeClass('show'); } } else{ $("a.collapseListBt").hide(); $('.content-box-right').addClass('show'); } }); 是React所需要的,因此它们在群组中可以是唯一的。但最新版本的React不需要这些密钥。因此,如果您使用最新版本的reframe / Reagent,请尝试不使用:key元数据。

此元数据相当于在组件中放置:key。例如,你拥有的东西相当于:

:key

使用元数据方法是一种方便,在某些情况下必须比传递给组件的道具中的第一个键更容易。方法

此处还有explanation