【问题标题】:Reloading re-frame component from repl从 repl 重新加载 re-frame 组件
【发布时间】:2022-11-24 02:35:05
【问题描述】:

我目前正在试用 ClojureScript,我有点困惑。

我的印象是我可以通过在 REPL 中评估它们来重新加载单个组件。

我已经设置了 nREPL 和 nvim conjure。 (我也试过 vscode calva)

我可以评估 (js/alert "test") 之类的东西并在浏览器中收到警报,但是例如当我有类似的东西时:

(defn main-panel []
  (let [name (re-frame/subscribe [::subs/name])]
    [:div
     [:h1
      "Hello from " @name]]))

并更改文本,我必须保存文件(从而重新加载所有更改,而不仅仅是我对该组件所做的更改)以查看浏览器中反映的更改。

我认为您可以在 clojure 脚本中以这种方式使用 REPL 是不是我错了?

【问题讨论】:

标签: clojurescript reagent re-frame nrepl


【解决方案1】:

您可以直接从 REPL 重新定义组件,但这不会自动重新渲染组件。

在典型的hot-reload workflow 中,首先加载编译后的代码,然后触发渲染。在 REPL 中评估组件基本上是加载代码部分。

因此,要实际渲染组件,您还需要从 REPL 调用渲染函数。

热重载是常见的工作流程,因为 REPL 在这方面需要更多的手动操作,但它确实可行。

【讨论】:

    猜你喜欢
    • 2019-07-18
    • 2011-12-01
    • 2013-02-01
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 2017-11-18
    • 2017-10-24
    相关资源
    最近更新 更多