コンポーネントの問題
多くの場合、コンポーネント/ウィジェットは、スクリプトに加えて、他のリソース(htmlマークアップ、スタイル、画像、コンポーネント)で構成されます。 そして今、私はこれらの同じリソースのコレクターを取得したいと思います。 開発中に、コンポーネント/ライブラリを使用してディレクトリへのパスを指定し、目的のものを接続します。アセンブリ中に、htmlが1つ、スタイル、 javascriptにも貼り付けられ、画像がアプリケーションにコピーされます。 そのような「デザイナー」は恐らくすでに存在しているかもしれませんが、適切なものを見つけられませんでした-そして、私の目標は競合製品を作成することではなく、自分に必要なことをすることでした。
ここ(github)では、このものをダウンロード/ apiで見ることができます。 このトピックがおもしろそうで、この不適切な文章に10分を費やしてくれる人には、猫に招待してください。
少し歴史、または適切な自転車は何ですか
正直に言うと、物事を「正しい」と呼んだり、「何かをする方法」と書いたりするのは少し厄介です。結局のところ、これはすべて主観的なものです。
タスクに直面したとき、それを解決するために必要なツールと持っていないツールを評価します。 また、それによりプロセスをスピードアップできると考えています。 そして今、私たちが既存のツールを少し、ほんの少しだけ修正することに決めたなら、それが、自転車への100マイルの最初の一歩を踏み出しました。 さらに多くの同様の問題を解決する必要があります。ここでは、機能をレンガで構築します。 誰もがタスクを生き延びるわけではありません。どこかで吐き出し、既製のライブラリを受け取ります。 そして、どこかで、これらの「完了するのが少し」の必要性は単純に消え、そして、流れる場所のない水のように、沼地に変わります。 しかし、沼地は悪くありませんが、逆に何百万もの種に命を与えます。
しかし、ツールキットが生き残った場合、これは複数の「小さな完成」であり、その結果、「モノ」が得られ、各コンマまたはその逆を認識します。将来は私が驚いて笑うでしょう。 機能の追加、変更、編集が既に簡単な場合。 自由の風が感じられる場所、この「もの」があなたが望むこととあなたが望むようにするとき。 この余談をおforびします。
そして物語自体は当たり前です
- スクリプト全体を1つのファイルに書くのにうんざりしていませんか? -いくつかに分けます。
- ファイルは、index.htmlで接続されたすべてのものに飽き飽きしましたか? -少しのダイナミクス: domを作成して貼り付ける
スクリプトにはスタイルとajaxが必要ですか? href属性とonreadystatechangeのxmlhttprequestを含む リンクタグを次に示します。
スクリプトは、 ネストされた/再帰的なリソースがいつロードされるかを知る必要がありますか? これで、リソースツリーとevalが使用されます。 最初の方法は依存関係を簡単に処理できるため、evalを誓わないでください。したがって、他の場所(package.jsonファイル内)にモジュールの種類や必要なものを指定する必要はありません。 また、 「定義」タイプの構造を構築する必要もありません。 次に、アプリケーションをビルドすることが目標です。このevalは既に存在しません(遅延スクリプトを除き、以下を参照) 。 アプリケーションをコンパイルしなくても、このeval-eには犯罪者はいないことに注意してくださいこの評価、実際には彼はそれをもう必要としません) 。
リクエストに応じてすぐに利用できる(IDeferredなしで)遅延スクリプトが必要ですか? スキーマは単純です:XMLHTTRequest-> __defineGetter__-> eval。 例から:
include.lazy({'ui.notification':'path'})
、そしてui.notification./**eval , */show('Hello World');
すぐui.notification./**eval , */show('Hello World');
を呼び出すとすぐにui.notification./**eval , */show('Hello World');
モジュールはeval関数が返す方法と内容に基づいている必要があるという事実に注目してください。
便利なパス処理とルーティングが必要ですか?"utils.js"
は、親に対する相対パスです。"/utils.js"
は、アプリケーションへの相対パスです。.js({ dom: "zepto" })
-その前に、ルートdom
を登録します:.cfg({dom: "/scripts/dom/{name}.js"})
。
ダイアログボックスの単純で間違った例ですが、これは主なものではありません-主なことは、画像、スタイル、およびHTMLマークアップを使用して、個別のリソースが単純に接続されていることを確認することです。 ここで、MaskJSは少し動作していることを示しました。次の記事では、コンポーネントライブラリがそれらに接続され、まったくケーキになります。 これも主観的な意見ですが、これはすべて無意味かもしれませんが、html5アプリケーションを快適に開発するのに役立ちます。 同様のツールを知っている場合は、それらを共有してください。 また、これまでのところこれはすべて非常に未加工であると警告したいと思いますが、私はすべてに取り組んでいきます-それは多くの喜びをもたらします。 そのようなことが誰かに役立つなら、もっと動機があるでしょう。 しかし、そうでなければ、それで十分です、それは;)
がんばって。