2013-01-04 16 views
5

ClojureScriptを使用して「シングルページ」スタイルのWebアプリケーションを作成したいと思います。そのためには、私はクライアント側のテンプレートシステムが必要です。 ClojureScriptのテンプレートシステムを調べる経験やアドバイスはありますか?ありがとう。ClojureScriptのテンプレート

答えて

5

あなたはdommyを見ているかもしれませんが、テンプレートシステムはPrismaticによって書かれた/使用されています。

2

クレートとDommyの両方を使用していると、どちらも非常に良いと言えるでしょう。 Crateは、ClojureのHiccupをテンプレートとしてClojurescriptに変換したものですから、Dominaを使用して要素を選択する必要があります。あなたはDOMの選択とテンプレートの両方を処理するフレームワークをしたい場合はDommy

2

を使用し、その後、私はClojurescriptための3つのテンプレートの味を知っている:

  1. Dommy:DOMを作成し、操作するcljsコードから直接ノード。
  2. Crate:cljsデータ(ベクトル、マップなど)を宣言して操作し、それをDOMノードに変換します。
  3. Enfocus:HTMLをHTMLファイルに書き込み、処理してcljsから変換します。これはテンプレート作成の考え方の違いで、cljライブラリEnliveに基づいています。

生成ライブラリがありますがDOMではなく、上述したものと同様に、通常のDOMノードが、仕事の節反応:

  1. どれCljsはオムまたは試薬
  2. Sablono
  3. のように、ラッパーに反応
  4. Kioo

私はあなただけのテンプレートを求めている知っているし、それ以上に付属して反応するが、あなたはトン以外に何が必要な場合彼は最も基本的な操作で、私はReactに基づいたアプローチをお勧めします。

0

すでに受け取った答えに加えて、私はあなたがReactなどOmReagentまたはQuiescentに基づいてシステムをチェックアウトすることをお勧めします。 3つのうち、私の個人的なお気に入りは試薬ですが、いずれも従来のDOM操作IMHOよりも改善されています。

1

これまで言及されていないので、私は本当にHoplonが好きです。

  • カスタムHTML要素は、通常の関数であり、作成したとHLispと機能的に構成することができます。これは、ツールの次のセットを組み合わせたものです。
  • Javelin ClojureScriptライブラリを使用したスプレッドシート形式のデータフロー。セルや数式を使って直感的に反応するモデルをモデル化する。
  • Castra ClojureおよびClojureScriptライブラリを使用するサーバーと対話します。サーバー上の関数を定義し、クライアントから呼び出します。

フルスタックソリューションとして使用することも、クライアント側でのみ使用することもできます。

(page "index.html") 

(defn my-list [& items] 
    (div 
    :class "my-list" 
    (apply ul (map #(li (div :class "my-list-item" %)) items)))) 

(def clicks (cell 0)) 

(html 
    (head 
    (title "example page")) 
    (body 
    (h1 "Hello, Hoplon") 

    (my-list 
     (span "first thing") 
     (span "second thing")) 

    (p (text "You've clicked ~{clicks} times, so far.")) 
    (button :click #(swap! clicks inc) "click me"))) 
関連する問題