:
는 자동적으로 응용 프로그램에 figwheel 클라이언트 코드를 삽입합니다 :figwheel true
또는 :figwheel { :on-jsload "example.core/reload-hook" }
설정. 함수 이름 인 :on-jsload
을 제공하면 새 코드가 다시로드 된 후 해당 함수가 호출됩니다. 당신의 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))
그리고 :
시약의 예를 다시로드 후크 플러스 구성
프레임을 다시
:cljsbuild {:builds {:dev {:source-paths ["src"]
:figwheel {:on-jsload "your-namespace.core/reload"}}}
/편집
참고 시약을 사용합니다. 리 프레임의 경우 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