問題タブ [clojurescript]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
clojure - ClojureScript開発に使用できるIDE、エディター、およびツールは何ですか?
ClojureScriptが最初に発表されてから1年になります。私は本番環境でClojureScriptを使用していませんが、次のプロジェクトでこのテクノロジを使用することを検討しています。IDEの現在のステータスとClojureScriptのツールサポートは何ですか。IDE、エディター、ツールは次のとおりです。私は次のことを認識しています。
- ClojureScript REPL、ブラウザー接続REPL
- 2つのREPLを使用したClojureScriptEmacsのセットアップ
- lein-clojurescriptClojuresSriptコンパイル用のLeiningenプラグイン。
- lein-cljsbuildClojureScriptファイルが変更されたときに自動的にコンパイルするためのLeiningenプラグイン。
- CLJSウォッチャー
- LightTableIDE有望で革新的な新しいClojure/ClojureScript IDEは、ちょうど0.1.0に達しました。
このリストにないプロジェクトまたはツールがおそらくいくつかあります。主要なIDEの1つへの統合は見たことがなく、ClojureScriptで作業している大多数の人々がEmacsを使用していると想像できます。私はEmacsを使用しても問題ありませんが、すべての開発者がEmacsを使用するというアイデアを好むとは限りません。このリストに欠けているツールやIDE拡張機能はありますか?おそらく、より大きなプロジェクトで使用されているツールでさえありますか?
xml - clojurescript:xmlを消費していますか?
私の Clojurescript アプリは、XML ベースの API を処理する必要があります。fetchのようなほとんど透過的なリモーティング ソリューションがあることは知っていますが、両端が Clojure で記述されている必要があるようです (つまり、 fetch は noir/clojurescript ソリューションのようです)。
Clojurescriptを使用してXML APIを使用する「正しい方法」は何ですか?
XML フラグメントをネストされた Clojure データ構造 (ネストされたベクトル) に Hiccup スタイルで変換できるようにすればよかったのですが、優れた処理 API があれば幸いです (C2 のようなものunify
でしょうか?)。
scala - Clojurescript のような Scala はありますか? 別名 Integrated Scala Single Page Application
つまり、ClojureScript Oneはかなり見栄えがするのです! SPAに対してリアルタイムで REPL を更新できます。
したがって、このようなことは、REPL がない Java ではかなり不可能ですが、Groovy や Scala などでは非常に可能に思えます。私は一種の Lisp 偏屈者で (本当はそうすべきではないのですが)、Clojurescript のような Scala や Groovy があるかどうか疑問に思っています。
更新: 理論的には、Scala/Groovy を Java のItsNatにラップできるようです。しかし、2011年以来更新されていないことを考えると、そのプロジェクトには疑問があります(また、彼らは最も醜いウェブサイトを持っています..彼らはそれを醜くしようとしたようです)。ライセンスもかなり制限されています。
drag-and-drop - 埋め込みSVGでイベントをドラッグアンドドロップしますか?
Webページ内のSVG要素からドラッグアンドドロップイベントを受け取る可能性はありますか?
私はGoogleClosureライブラリを試しましたが無駄でした。
具体的には、私のページに次のものが含まれているとします
そして私のスクリプトには(Clojurescript / C2)が含まれています
次に、ドラッグイメージ(ゴースト)を取得しますが、ドラッグイベントを受信することはできません。
SVG要素に同様のコードを使用すると、ゴーストも発生しません...
ヒントはありますか?
ありがとう
clojurescript - clojurescriptからjavascriptのthisキーワードをどのように参照しますか?
いくつかのClojureScriptコードを、コールバック関数を受け取るJSライブラリ呼び出しと統合しています。JSライブラリは、JavsScriptの「this」キーワードを使用してデータをコールバックに渡します。
(js * "this")を使用して動作させることができます。例えば:
js *に頼らずにClojureScriptから「this」コンテキストを取得する方法はありますか?
clojure - clojurescriptreplを使用してマクロを評価する方法
ブラウザがclojurescriptreplに接続されると、以前はreplからマクロを呼び出す方法がありませんでした。これは、過去にclojurescriptを延期し、javascriptを直接使用することを好む問題です。基本的に、cljs-replはちょっと足りないと感じ、clojureでコードを書くことで解放されるはずだったコンパイル/デバッグサイクルに戻りました。
clojurescriptでコードをプッシュおよびテストするための適切な回避策/ワークフローはありますか?特にマクロを評価できるのなら?
私の問題の例は次のとおりです。
新しいcljsプロジェクトを作成します
lein new cljs-template blah
サーバーを起動します
cd blah
ラインラン
web-replを実行します
leinトランポリンcljsbuildrepl-listen
src/blah/client/main.cljs
見出しのあるファイルがあります
行に注意してください(:use-macros [crate.macros :only [defpartial]])
defpartial
マクロなのでブラウザreplでは使えません。私が得るエラーは次のとおりです。
現在、defpartialは非常に便利なマクロであり、それがなければ面倒でした。
プロジェクトで。を使用して別のマクロを定義したい場合、問題はさらに悪化しました:use-macros
。replまたはブラウザーで書き込んだ内容をデバッグできず、約半日後、clj replを使用し、macroexpandを使用してそこでマクロをテストし、結果をコピーして戻す方が速いことがわかりました。ブラウザの担当者 約1日後に1つのcljsマクロが機能するようになりましたが、あまり面白くありませんでした。これは約6ヶ月前のことです。私は今これを行うためのより速い方法があることを望んでいます。
javascript - javascriptでclojurescriptからの複雑なリターンオブジェクトを使用する方法
["foo" "bar"]や(list "foo" "bar")のような複雑なアイテムを返すclojurescript関数を作成したいのですが、この関数をjavascriptから呼び出して、戻り値。どのようにそれを行うことができますか?私の場合、返すベクター/リスト/コレクション内のアイテムの数は事前にわかっているので、コレクションは注文されたままにする必要があります。
これが私のclojurescript関数です。物事が簡単になれば、ここで別のことをすることができます。それがどうなるかわからない。
javascriptにコンパイルされた後の様子は次のとおりです。この部分は、前のコードビットによって完全に決定/生成されます。ここで変更を加えるには、clojurescriptの前の部分を微調整する方法を知っている必要があります。
javascriptで次のことを行うと、["foo""bar"]で警告ボックスがポップアップ表示されます。
しかし、次のことを試してみると、アラートには「foo」ではなく「undefined」と表示されます。
アラートに「foo」を表示させるには、別の方法で何をすればよいですか?(うーん。値を使用するためにさらにclojurescriptを記述して、javascriptにコンパイルしたときにどのように表示されるかを確認できると思います...)
clojure - ClojureScriptOneプロジェクトでclojure.browser.event.unlistenを使用する
clojureScript Oneプロジェクトを作成しようとしていますが、イベントリスナーを削除するのに問題があります(リッスン解除)-リスナーは次のコードで登録されています:
しかし、私がこのコードで聞き取りを解除しようとすると:
コードはエラーなしで実行されますが、リスナーは削除されません。構文エラーがあると思いますが、どこにあるのかわかりません。
どんな助けでも大歓迎です。ありがとうラリー
clojure - ClojureScript:プロトタイプを介してJSオブジェクトにメソッドを追加するには?
既存の JavaScript システムにいくつかの機能を追加しようとしています。その後、(ClojureScript 名前空間内ではなく) JavaScript から再び使用されます。おそらくこれは不可能ですか?
これが私がやりたいことの単純化です:
上記のスクリプトを実行して、コードの他の場所から呼び出すことができるようにしたいと考えています。
extend-type
とdefprotocol
をいじってみましexport
たが、 foo 関数を公開しているようには見えませんでした。
これは設計上の決定であり、ここでは ClojureScript が機能しない可能性がありますが、何かを見落としていないことを確認したかっただけです。
clojure - ClojureScriptを使用したHTMLの生成
clojure.browser.domを使用して次のHTMLフラグメントを生成しようとしていますが、hiccupとは動作が異なるようです。
HTML要素を生成するための正しい表記法は何ですか?を使用して、
生成されません、