我一直在使用Clojure、ClojureScrip、lein、dow-cljs、Emacs和苹果wine 来开发Clojure/ClojureScript动态Web应用程序项目.

通常,我通过在Emacs中执行cider-jack-in-cljs命令来构建项目,然后 Select shape-cljs作为REPL类型,最后 Select app作为构建选项.

关于该项目的源代码,我们有:

(defn splitter-panel-title
  [text]
  [title
   :label text
   :level :level3
   :style {:margin-top "20px"}])

请注意不带a direct prefixstyle或花括号 :style {:margin-top "20px"}.此外,在较小的频率下,我们有:

(defn left-panel
  []
  [box
   :size "auto"
   :child [:div {:style rounded-panel}
           [splitter-panel-title [:code ":panel-1"]]]])

请注意带大括号{:style rounded-panel}style.最后,我们还有:

(defn header-view []
 [:div
   [:div
    [:style
     {:type "text/css"}]]])

请注意方括号[:style.

为什么重框上的:style有时与方括号一起使用,带大括号,不带任何东西?使用每种方法背后的规则是什么?

如果我的理解正确的话,这是一种内联风格的重框.最后两个示例位于div标记内.但他们中的每一个都使用了不同的方法.

方括号、花括号和不使用方括号是否以某种方式与Java脚本和/或css语法有关?

谢谢

推荐答案

titlebox成分的定义会告诉你为什么要这样做.reagent/re-frame在这里要做的是获取title分量并将其实质上称为

(title :label text :level :level3 :style {:margin-top "20px"})

当需要呈现实际组件时.所以,我猜title组件使用的是像这样的可变解构

(defn title [& {:keys [...] :as args}] ...)

CLJ(S)允许使用这样的键/值对调用函数.因此,从本质上讲,到达它的只是一张 map ,可能是这样的:

(defn splitter-panel-title
  [text]
  [title
   {:label text
    :level :level3
    :style {:margin-top "20px"}}])

Javascript相关问答推荐

如何在JavaScript中在文本内容中添加新行

如何在表格上拥有水平滚动条,在正文页面上拥有垂直滚动条,同时还对html表格的标题使用位置粘性?

格式值未保存在redux持久切片中

使用useEffect,axios和useParams进行react测试

查找最长的子序列-无法重置数组

无法从NextJS组件传递函数作为参数'

如何将react—flanet map添加到remixjs应用程序

如果Arrow函数返回函数,而不是为useEffect返回NULL,则会出现错误

Angular 订阅部分相互依赖并返回数组多个异步Http调用

我可以使用使用node.js创建的本地主机来存储我网站上提交的所有数据吗?没有SQL或任何数据库.只有HTML语言

如何在Angular17 APP中全局设置AXIOS

如何将未排序的元素追加到数组的末尾?

当从其他文件创建类实例时,为什么工作线程不工作?

在查看网页时,如何使HTML中的按钮工作方式类似于鼠标上的滚轮或箭头键?

JWT Cookie安全性

如何在独立的Angular 应用程序中添加Lucide-Angel?

在没有任何悬停或其他触发的情况下连续交换图像

如何压缩图像并将其编码为文本?

无法在Adyen自定义卡安全字段创建中使用自定义占位符

如何缩小函数中联合返回类型的范围