Lauiui のプロジェクト最適化と非侵入的最適化の詳細な分析
この記事は、layui のプロジェクトの最適化と非侵入的最適化についての詳細な分析を提供します。必要な友人が参考になれば幸いです。
layuiに基づく実践的な最適化、非侵襲的な最適化フォーム日付オープンiframeデータテーブルアップロード検証フォームlaytplレイページレイツリーテーブルTree
#layui-update
####プロジェクト紹介
#### #layuiに基づく実践的な最適化、非侵襲的最適化
###### [1.フォーム要素の最適化](https://bable2000.gitee.io/layui-update/view-demo/imit-form.html )
1. フォーム要素は、layui-form でラップする必要はありません
2. 動的に追加されたフォーム要素は、form.render() でレンダリングする必要はありません
3. 時間コントロールの JS 設定はありません。 min max は動的に設定され、開始時間と終了時間は個別に入力されます
4. 入力選択ラジオチェックボックスのフォーカス外の検証を追加します
5. [独立したフォームの検証 (送信をトリガーする必要がなく、フィルターを設定する必要もありません) )](https://bable2000.gitee.io/layui-update/view-demo/verify-form.html)
6. ドロップダウンボタングループと検索選択ボックスを追加します(フリータイプ)
7. フォームグループを追加します。ボタングループ
###### 2. [簡易定型](https:/ /bable2000.gitee.io/layui-update/view-demo/fixed-table.html) (表ヘッダー固定、最初の列固定) 、最後の列を修正、テーブルの末尾を修正)
###### 3. [データテーブル](https://bable2000.gitee.io/layui-update/view-demo/data-table.html)
1. ヘッダーは固定され、最初の列は固定され、最後の列は固定され、末尾は固定されますが、フォームの構造はまったく変わりません
2. フォーム テンプレートをカスタマイズします (自分で変更できます)
3 . ページネーションはテーブルとは独立しています (データ要求後および表示前の処理を容易にします)
4. カスタム フォーム テンプレートのため、デフォルトのチェックボックスをオン/オフにすることができます
5. の最後に手動の「合計」の機能を追加しました。 the table
[data table.png](http://oyh4crb8q.bkt.clouddn.com/data-table.png)
#### ## 4. [laytplテンプレートの記述方法をvueモードに修正] (https://bable2000.gitee.io/layui-update/view-demo/laytpl.html)、laytpl の複雑なテンプレートを書くのは難しすぎます
### ### 5. レイヤーを最適化します (プロジェクトの要件に従って) )
1. [レイヤーの非同期リクエストを追加](https://bable2000.gitee.io/layui-update/view-demo/layer-open.html)、ajax->layer のネストを削減します
``` layer.open({ type: 1, async: true, //异步请求,content为请求地址 content: '../template/xx.tpl', data: { /*静态tpl文件搭配动态数据,生成动态提示框.*/ /*(好处:不用后端生成动态文件,不用前端拼接字符串,不用一次性把当前页面可能涉及的弹窗内容全部都提前加载完)*/ v1: '李先生,你好!', v2: '没有开通权限/已开通权限' }, btn: ['按钮一', '按钮二', '按钮三'], success: function(layero, index) { console.log(layero, index); } }) ```
2. [iframe ポップアップ ウィンドウの開始位置とトレーサビリティを追加](https://bable2000.gitee.io/layui-update/)
``` var open1 = function() { layer.open({ type: 2, goal: top, //顶层窗口top,父级窗口parent,父级的父级窗口parent.parent content: './view-demo/iframe-source-2.html', area: ['50%', '50%'], success: function() { console.log('加载完') } }) }; parent.layer.close(layerIndex) //当前窗口信息 layerSource.parent.layer.close(layerSource.layerIndex) //关闭打开当前窗口的窗口 console.log('iframe弹窗发起方 layerSource:', layerSource.document); console.log('iframe弹窗layer索引值 layerIndex:', layerIndex) ``` ###### 6. [数据变化监控](https://bable2000.gitee.io/layui-update/view-demo/watchData.html) , [指定节点变化监控](https://bable2000.gitee.io/layui-update/view-demo/watchDom.html) ``` <div id="d1" class="box" attr-1=""></div> <button type="button" onclick="$('.box').addClass('box-1')">改变1</button> <button type="button" onclick="document.getElementById('d1').setAttribute('attr-1','x1')">改变2</button> <button type="button" onclick="document.getElementById('d1').innerHTML='HTML'">改变3</button> <script type="text/javascript"> var data = { a: 200, b: [1, 2, 3], c: { c1: 1, c2: 2 } }; $.watchData(data, function(x, y, z) { var c = 'data发生了改变↓' + '</br>' + '新值:' + JSON.stringify(x) + '</br>' + '旧值:' + JSON.stringify(y) + '</br>' + 'key:' + JSON.stringify(z); layer.alert(c); }); $.watchDom(document.getElementById('d1'), function() { layer.alert('box改变'); }); </script> ```
### ### 6. [ファイルのアップロード プレビュー、アップロード進行状況バー*、さまざまなフロントエンドおよびバックエンドのエラー処理、ファイルの全画面プレビュー、回転](https://bable2000.gitee.io/layui-update/view-demo/upload.html )
[ファイルアップロード.png](http://oyh4crb8q.bkt.clouddn.com/file-1.png)
[ファイル全画面プレビュー.png](http://oyh4crb8q.bkt.clouddn.com/file -2.png)
1. Reader.readAsDataURL(file)->window.URL.createObjectURL(file) =>非同期ファイルのプレビューが同期に変更されます (同じブラウザーのサポート)
* [ のコードを引用しますストリーミングしてから「最適化」](https://fly.layui.com/jie/31616/)
###### 7. 外部ファイルへの再帰参照
``` <imports href="../template/imports-1.tpl">同步引入失败替换内容(引入片段中允许有script)</imports> <imports href="../template/imports-1.tpl" async>异步引入失败替换内容</imports> ```
##### # 8 .js は外部ファイルを導入します
> requires方法内部用promise实现缓存,如需重复请求一个动态文件,请加时间戳 ``` "请求js" requires(jsBase + 'imit.js'); //同步阻塞引入js requires(jsBase + 'imit.js', true); //异步引入js requires(jsBase + 'imit.js', function(){/*加载成功回调*/}); //异步引入js var req1=requires(jsBase + "tpl.js", true); req1.then(function(){/*promise式请求*/}); "请求css" requires('css|style1.css') //异步请求style1.css "请求html,html#,tpl,ftl" requires('text|file.tpl', function(html) {/*以文本形式引入file.tpl,剔除了<html><head><body>标签,*/}) requires('text|file.tpl#x1', function(x1) {/*引入file.tpl,并获取x1锚点内容*/}) requires('text|file.tpl#y1', function(y1) {/*不再发起重复请求,直接从file.tpl文件缓存中,并获取y1锚点内容*/}) ```
#### ソフトウェアアーキテクチャ
layuiアーキテクチャに基づいています/**layui-v2.2.6 私のライセンス https://www.layui.com*/
#### インストールチュートリアル
layuiアーキテクチャに基づいています
layui 最初のバージョンは 2016 年の黄金の秋にリリースされました。MVVM の最下層に基づく UI とは異なります。 しかし、フレームワークは方向性に反するのではなく、自然に還る方法を信じています。正確に言うと、サーバー側のプログラマー向けに調整されており、さまざまなフロントエンド ツールの複雑な構成に関与する必要はなく、ブラウザ自体に直面するだけで、必要なすべての要素と操作を行うことができます。すぐに見つかります。
紹介する必要があるもの:
``` <link rel="stylesheet" type="text/css" href="../js/layui/css/layui.css" /> <link rel="stylesheet" type="text/css" href="../css/common.css" /> <script src="../js/jquery.min.js"></script> <script src="../js/layui/layui.js"></script> <script src="../js/common.js"></script> ```
関連する推奨事項:
gulp を使用して requireJS プロジェクトを自動的に最適化する方法
以上がLauiui のプロジェクト最適化と非侵入的最適化の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Layui ログインページジャンプ設定手順: ジャンプコードの追加: ログインフォーム送信ボタンクリックイベントに判定を追加し、ログイン成功後、window.location.href 経由で指定ページにジャンプします。フォーム構成を変更します。lay-filter="login" のフォーム要素に非表示の入力フィールドを追加します。名前は「redirect」、値はターゲット ページ アドレスです。

layui は、フォームのすべてのフィールド データを直接取得する、単一のフォーム要素の値を取得する、formAPI.getVal() メソッドを使用して指定されたフィールド値を取得する、フォーム データをシリアル化するなど、フォーム データを取得するためのさまざまなメソッドを提供します。これを AJAX リクエスト パラメータとして使用し、フォーム送信イベントをリッスンしてデータを取得します。

Java 開発は、現在世界で最も人気のあるプログラミング言語の 1 つであり、アプリケーション開発に Java を使用する企業や組織が増えるにつれ、Java 開発者の数も増加しています。ただし、Java 開発者は、コードの重複、ドキュメントの欠如、非効率な開発プロセスなど、いくつかの一般的な問題に直面する可能性があります。この記事では、Java 開発作業プロジェクトのエクスペリエンスを最適化するいくつかの方法を検討します。デザイン パターンを使用する デザイン パターンを使用すると、コードの品質を向上させながら、コードの重複や不必要な複雑さを回避できます。

アダプティブ レイアウトは、layui フレームワークのレスポンシブ レイアウト機能を使用して実現できます。手順には以下が含まれます:layui フレームワークを参照する。アダプティブ レイアウト コンテナを定義し、layui-container クラスを設定します。レスポンシブ ブレークポイント (xs/sm/md/lg) を使用して、特定のブレークポイントの下にある要素を非表示にします。グリッド システム (layui-col-) を使用して要素の幅を指定します。オフセット (layui-offset-) によって間隔を作成します。応答性の高いユーティリティ (layui-invisible/show/block/inline) を使用して、要素の可視性とその表示方法を制御します。

layui を使用してデータを送信する方法は次のとおりです。 Ajax を使用する: リクエスト オブジェクトを作成し、リクエスト パラメーター (URL、メソッド、データ) を設定し、レスポンスを処理します。組み込みメソッドを使用する: $.post、$.get、$.postJSON、$.getJSON などの組み込みメソッドを使用してデータ転送を簡素化します。

Lauiui と Vue の違いは主に機能と懸念事項に反映されます。 Layui は UI 要素の迅速な開発に重点を置き、ページ構築を簡素化するプレハブ コンポーネントを提供します。Vue は、データ バインディング、コンポーネント開発、および状態管理に重点を置いたフルスタック フレームワークで、複雑なアプリケーションの構築により適しています。 Layui は学習が簡単で、ページをすばやく作成するのに適しています。Vue は学習曲線が急ですが、スケーラブルで保守が簡単なアプリケーションの構築に役立ちます。プロジェクトのニーズと開発者のスキル レベルに応じて、適切なフレームワークを選択できます。

layui は、開発者が最新の応答性の高いインタラクティブな Web アプリケーションを迅速に構築できるように、豊富な UI コンポーネント、ツール、機能を提供するフロントエンド UI フレームワークです。その機能には、柔軟で軽量、モジュール式の設計、豊富なコンポーネント、強力なツール、簡単な機能が含まれます。カスタマイズ。管理システム、電子商取引プラットフォーム、コンテンツ管理システム、ソーシャル ネットワーク、モバイル アプリケーションなど、さまざまな Web アプリケーションの開発に広く使用されています。

layui と vue はフロントエンド フレームワークであり、layui は UI コンポーネントとツールを提供する軽量ライブラリであり、vue は UI コンポーネント、状態管理、データ バインディング、ルーティングなどの機能を提供する包括的なフレームワークです。 layui はモジュール型アーキテクチャに基づいており、vue はコンポーネント化されたアーキテクチャに基づいています。 lauiui には小規模なエコシステムがあり、vue には大規模でアクティブなエコシステムがあります。 Lauiui の学習曲線は低く、vue の学習曲線は急です。 Layui は小規模なプロジェクトや UI コンポーネントの迅速な開発に適しており、vue は大規模なプロジェクトや豊富な機能を必要とするシナリオに適しています。
