:
:figwheel true
または:figwheel { :on-jsload "example.core/reload-hook" }
を設定すると、自動的にアプリケーションにfigwheelクライアントのコードを挿入します。関数の名前を:on-jsload
に指定すると、その関数は新しいコードがリロードされた後に呼び出されます。
試薬たとえばリロードフックプラス設定:再フレームは試薬を使用しています
:cljsbuild {:builds {:dev {:source-paths ["src"]
:figwheel {:on-jsload "your-namespace.core/reload"}}}
/編集
注:お使いのproject.clj
で
(ns your-namespace.core
(:require [reagent.core :as r]))
(defn render [view]
(let [node (.getElementById js/document "app")]
(r/render-component view node)))
(defn rerender []
(let [node (.getElementById js/document "app")]
(r/unmount-component-at-node node)
(render [:div "Reloading"]))
(defn ^:export reload []
(rerender))
そして。再フレームの場合は、re-frame-template
で始まることをお勧めします。例えば、
lein new re-frame your-project-name # options, e.g., +re-frisk +cider
次のようにこれがデフォルトcore.cljs
を与える:
(defn dev-setup []
(when config/debug?
(enable-console-print!)
(println "dev mode")))
(defn mount-root []
(re-frame/clear-subscription-cache!)
(reagent/render [views/main-panel]
(.getElementById js/document "app")))
(defn ^:export init []
(re-frame/dispatch-sync [:initialize-db])
(dev-setup)
(mount-root))
index.html
は、ID app
を持つノードを持ち、init
を呼び出します。次のようにproject.cljs
はon-jsload
を指定します。
:cljsbuild
{:builds
[{:id "dev"
:source-paths ["src/cljs"]
:figwheel {:on-jsload "your-project-name.core/mount-root"}
#_(...)}}
これは絶対に変更コンポーネントでページを更新する必要があります。それがあなたが望むことをしなければ、私はあなたの質問を誤解しているかもしれません。
毎回書き込んだら「cljs-icon」ポップアップが表示されますか? figwheelはあなたの変更を読み込んでいないのですか? – cfrick