ホームページ  >  記事  >  ウェブフロントエンド  >  layuiプロジェクトで関数layui.defineを使用する方法の紹介

layuiプロジェクトで関数layui.defineを使用する方法の紹介

尚
転載
2019-11-23 13:29:008186ブラウズ

layuiプロジェクトで関数layui.defineを使用する方法の紹介

前書き:

1.layui.define を深く理解し、適切に使用している場合、この記事は時間の無駄です。

2.「JavaScript モジュール開発」について聞いたことがなく、ましてや理解したことがない場合。それから、まずインターネットで「JavaScript モジュラー開発」とは何なのかを検索することをお勧めします。これは、後で説明する内容を理解するために非常に重要です。もちろん、この本の著者の概念をよりよく理解するのにも役立ちます。ライユイは表現したいと思っています。

推奨: layui フレームワーク チュートリアル

Layui を使用するとき、よく

layui.use([], function(){})

を使用しますが、注意深い友人は、layui には別の関数があることに気づくでしょう。 layui.define と呼ばれます。これは何に使用されますか?

私たちは以前、次のようなコードのような、モジュール化の概念を持たないコードを記述していました。

function entry(type) {
  if (type === 1) { handle1() }
  else if (type === 2) { handle2() }
  else { handleall() }
}

function handle1(){}
function handle2(){}
function handleall(){}

長期にわたる実践により、プログラマは JavaScript のモジュール化が不可欠であることを理解するようになりました。モジュール化の実現に関しては、企業ごとに独自の考え方や実装が存在します。彼らは考えられるすべての問題を考慮しているため、そのモジュール性を使用する必要がある複雑な構成も生じます。

layui は独自の読み込み方法を採用しており、他のモジュール実装と比較して比較的軽量です。独自のモジュール性を実現するために定義および使用する 2 つのコア関数がありますが、場合によっては混乱を招く可能性があります。会社の友人が使用中に「layui の定義関数は使用関数と似ていると思うのですが、どうすれば正しく使用できますか?」と尋ねました。

layui ドキュメントに記載されているように、関数layui.define はコンポーネントを拡張するために使用されます。関数の使用は、このコンポーネントをロードして使用することです。しかし、どのような種類のコードがコンポーネントとしてカウントされるのでしょうか? 拡張コンポーネントのページでは、優れた作成者が結果を共有していることも確認できます。しかし、これらのコンポーネントにはすべて、ビジネスに関与していないという共通点があることがわかります (これはナンセンスではありません。ビジネスを行う人が使用する場合)。

つまり、ビジネスが設計されると、それはコンポーネントではなくなりますが、この時点で名前をインターフェースに変更できます。そうすれば、関数の定義と使用の違いが理解しやすくなります。関数定義はコンポーネントまたはインターフェイスを定義することであり、関数使用はそれらのコンポーネントまたはインターフェイスを使用することです。他の人に使用してもらいたいコンポーネントまたはインターフェイスを作成する場合は、関数 define を使用しますが、関数が内部実行のみであり、他の人が呼び出す必要がない場合は、関数 use を使用します。

この時点で、この 2 つの違いを明確に理解できれば、次のアーキテクチャを持つ単純な Layui プロジェクトがより明確になるはずです。

まず、ここから簡単な構築プロジェクト layui.test.project をダウンロードする必要があります。

次に、ツールを使用してプロジェクトを開くと、ファイル ディレクトリがはっきりと確認できます。

layuiプロジェクトで関数layui.defineを使用する方法の紹介

ここでは、index.single.html に表示されている多数のlayui.defineが使用されています。ここでは、layuiのcdnを設定し、グローバルlayuiパラメータを設定します。そして最後に、私たちが使用するビジネススクリプトです。

layui.config.js を開くと、内容がはっきりとわかります。2 つのコンポーネント (名前に注意してください) を定義しました。これらにはビジネス ロジックがありません。そこで、これを lib フォルダーに配置しました。このフォルダーは、ビジネス以外のパブリック コンポーネントを保存するために使用されます。よく使うので事前に設定しておきました。

次に、エントリ スクリプト main.single.js に進みます。これは、layui 独自のモジュール jquery と form、および先ほど定義したモジュール ロガーなどを使用します (これらは他のモジュールにエクスポートしないため)。使用するので、関数使用を使用します。その中に、簡単なテストロジックを作成しました。

次に、ここでは api、const、utils がまったく使用されていないことに気づくかもしれません。

api 名前は、バックエンド インターフェイスでの処理を提供することを意味します。layui には jquery が付属しているため、jquery.ajax を使用してバックエンド インターフェイスを呼び出します。コールバック関数は一部の初心者にとって悪夢である場合があります。チェーン内で呼び出すことができる jquery の deffer オブジェクトを使用します。

ここでは jquery.ajax をカプセル化していないため、エラー処理とトークン搬送の統一された処理がなく、目に見えないワークロードをロードするため、jquery.ajax をカプセル化するインターフェイスを追加する必要があります。ここでもう一度定義します。コンポーネントlayui.ajax.js

constには定数が格納されます。ここでは、キーワードresponse.jsがインターフェイスを返すように設定されています。もちろん、これはシミュレーション用です。フロントエンドとバックエンドについては十分に議論されており、プロジェクトに直接記述することもできます。

utils にはツール クラスが保存されており、よく使用される変換時間と変換 URL をここに記述できます。

これら 3 つのフォルダーは他のビジネス ページを支援するように構成されているため、基本的にすべて遅延読み込み呼び出しを使用します。これらは関数の定義から始まり、最後に外部呼び出しのインターフェイス名をエクスポートします。事前設定が必要な lib とは異なり、使用する場合は自分で再設定する必要があります。例として utils の読み込みを示します。

layui.extend({
  utils: '/path/to/utils/index'
}).use(['utils'], function(){
  var utils = layui.utils
  // ...
})

注意: 如果你使用ftl,jsp,apsx这些由后台渲染的页面引擎,应该会有一个公共的头部,那么刚刚的全局配置 layui 文件 layui.config.js,你可以在公共的头部加入。

以上がlayuiプロジェクトで関数layui.defineを使用する方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlayui.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。