問題タブ [reagent]
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.
reactjs - JSXなしでreact-routerを使用する
javascript API を介して react-router を使用する例を見つけようとしていますが、これまでのところ何も見つかりませんでした。
私の目標は、react-router を試薬と clojurescript で使用することです。したがって、誰かがこれを機能させた場合 (Om を使用しても)、正しい方向に進んでいただければ幸いです。それ以外の場合は、JSX を使用しない単純な JavaScript の例が役立ちます。
編集 1 -- 解決策に近づく
JSX をプレーンな JS に変換する手助けをしてくれた @FakeRainBrigand に感謝します。
これが React.js 0.11.2 バージョンです (現在のリリースの Reagent が使用しているのは 0.4.3 です)。
JSXTransformer.js
ヒント:お使いのバージョンの Reactを使用して JSX->JS 変換を実行できます。ページに含めて、ブラウザの開発者コンソールを使用して実行するだけですJSXTransformer.transform('/** @jsx React.DOM */<Route location="history">...</Route>').code
Clojurescript のバージョンは次のとおりです。
残念ながら、Reagent がデフォルトで作成するコンポーネントは、「標準」の React コンポーネントではないようですReact.isValidClass(myReagentComponent) === false
。あとは、そのテストに合格する形でコンポーネントを生成する方法を理解するだけです。そのために投稿されたスタックオーバーフローの質問があります。
reactjs - Reagent は、React.isValidClass(component) を渡す React コンポーネントを生成しますか?
Clojurescript Reagent プロジェクトで react-router を使用しようとしています。問題は、react-router がコンポーネントに pass を要求することですReact.isValidClass(component)
。これは、React 0.11.2 では次のように定義されています。
Reagent は、関数ではなくオブジェクトとしてコンポーネントを生成するようです。これが私のコードです:
この種の相互運用を機能させる方法を考え出した人はいますか?
reactjs - 試薬 (または Om) の React の参照?
コンポーネントのレンダリング後に入力フィールドにフォーカスするなど、DOM の状態を変更するためにReact のRefsを使用すると便利な場合があります。ReagentまたはOmはこれを実装していますか、そうでない場合、これらのライブラリでこれを行う慣用的な方法は何ですか?
EDIT(以下の議論の後)。
this.getDOMNode
inの使用は、componentDidMount
この問題に対する一般的な解決策ではありません。コンポーネントがマウントされた後にのみ、物理 DOM 要素へのアクセスが許可されます。イベントをトリガーする場合など、render を呼び出すたびに、要素への一貫したアクセスが必要になる場合があります。それを行う方法は、参照を使用することです。
reactjs - Reagent should-component-update が呼び出されない
不必要なレンダリングを避けるために、 should-component-update ライフサイクル関数を実装しようとしています。私の現在の実装は次のようになります。
should-component-update から false を返しても、コンポーネントは常に更新されます。(.log js/console ...)
いくつかのデバッグステートメントを追加してもコンソールにメッセージが生成されないため、関数は呼び出されていないようです。ここで何が欠けていますか?
reactjs - Clojurescipt/Reagent で ReactJS コンポーネントを使用する方法
Clojurescript のReagentで使用するために ReactJS コンポーネントをラップすることは可能ですか? であると読みました。誰かが私に基本的な例を提供できますか?
ありがとう
clojure - Reagent / Clojurescriptでクライアントの状態を最新に保つ
これについて最善の方法がわかりません:
いくつかの「プロジェクト」オブジェクトの基本的な CRUD 機能を実装する、作成中の Web アプリケーションがあります。そのため、ユーザーは独自のプロジェクト セットを作成できます。
プロジェクトを追加/削除/一覧表示するための REST API を作成し、Reagent フロントエンド クライアントを作成しました。ご想像のとおり、クライアントのプロジェクトは試薬アトム (ratom) に保持されます。
ここが興味深いところです。
私が見たすべてのチュートリアルでは、ratom を更新する方法を示しており、GUI は自動的に更新されます。私はそれを持っています、それはうまくいきます。
私が現在行っていることは、クライアントの状態を更新する時点で、データベースのサーバーの状態を更新するために REST POST 呼び出しを行うことです。
しかし、これは気分が悪い。現在、クライアントとサーバーの 2 つの場所に状態を保存していますが、どちらも異なる可能性があります。
これを単純な古い Web ページとして実装した場合、サーバーはデータベースの最新の状態を含むページをクライアントに送り返します。しかし、状態はクライアントのラトムに既に存在しており、どのように同期すればよいかわかりません。
最初の POST が成功した後、サーバーに別の呼び出し (GET 要求) を行う必要がありますか? これにより、ratom の内容が置き換えられる可能性があります。それから私は2つの要求をしています..無駄に思えます。
または、コードやセンテなどを使用してクライアントの状態を非同期に管理することをお勧めします。これは、他のユーザーからの変更がクライアント側で即座に更新されることを意味するため、より優れています。しかし、これらのいずれかに反応することを示すチュートリアルが表示されないため、間違った方向に進んでいる可能性があります。
したがって、問題は単純に、組み合わせて REST とどのように反応するべきかということです。
ありがとう
reactjs - 試薬:コンポーネントがマウントされました
入力要素に初期フォーカスを設定しようとしています
これは私にはうまくいきません。私は何を間違っていますか?
clojure - clojurescript + 試薬の問題
私は、clojurescript と試薬を使用して単純な Web アプリに取り組んでいます。テキスト入力コンポーネントを含む単純な「タブ」コンポーネントを作成したいと思います。
アプリには 2 つのタブがあり、ユーザーはタブを選択するオプションがあり、これら 2 つのタブのそれぞれの値を「保持」したいと考えています。
コードは次のとおりです。
問題は、タブを切り替えると、コンポーネントが入力フィールドの値を共有することです。ここで何が間違っていますか?
手伝ってくれてどうもありがとう!