論理階層化vue3を使用してプロジェクトを開発する場合、 異なる地域から事業を分離エクスポートデフォルト{ 設定 () { {queryDo、addDo、delDO、EditDo} を allFun() にします。 queryDo(); //クエリインターフェースが呼び出されます} } // これはページ関数 allFun(){ の領域 A のロジックです console.log('私はallFun関数内の直接のステートメントであり、実行されます') 関数queryDo(){ console.log('インターフェースをクエリし、バックエンドデータを呼び出しています') } 関数addDo(){ console.log('私は初心者です') } 関数delDO(){ console.log('削除しました') } 関数EditDo(){ console.log('私は編集インターフェースです') } {queryDo、addDo、delDO、EditDo} を返します } </スクリプト> これを実行する利点
このようなシナリオにどう対処するかビジネスロジックを書くときは、 <スクリプト> エクスポートデフォルト{ 設定 () { // ここで使用される構造はエリア A です。let {queryDo,addDo,delDO,EditDo}=aAreaAllFun(); // エリア B let {querHander}=bAreaAllFun(); {queryDo、addDo、delDO、EditDo、querHander} を返します } } // これはAエリアページ上の特定のエリアのロジックです。function aAreaAllFun(){ 関数queryDo(){ console.log('私はエリアAのクエリインターフェースです') } 関数addDo(){ console.log('私は初心者です') } 関数delDO(){ console.log('削除しました') } 関数EditDo(){ console.log('私は編集インターフェースです') } {queryDo、addDo、delDO、EditDo} を返します } // これはエリアBのビジネスロジックです。関数bAreaAllFun(){ // エリア A のクエリ インターフェイスを直接呼び出します。aAreaAllFun().queryDo(); 関数querHander(){ console.log("エリア B のクエリ インターフェイス") } {querHander} を返す } </スクリプト> 使用していますが 最適化<スクリプト> エクスポートデフォルト{ 設定 () { // これはAエリアページの特定のエリアのロジックです。let {addDo,delDO,EditDo}=aAreaAllFun() // これは B エリア ページ上の特定のエリアのロジックです。let {querHander}=bAreaAllFun(); {queryDo、addDo、delDO、EditDo、querHander} を返します } } // パブリッククエリインターフェース 多くの領域では関数 queryDo(){ が使用される可能性があります console.log('私は地域のクエリインターフェースです、引き出されました') } // これはAエリアページ上の特定のエリアのロジックです。function aAreaAllFun(){ 関数addDo(){ console.log('私は初心者です') } 関数delDO(){ console.log('削除しました') } 関数EditDo(){ console.log('私はエディターインターフェースです') } {addDo,delDO,EditDo} を返します } // これはエリアBのビジネスロジックです。関数bAreaAllFun(){ // パブリック クエリ インターフェイス queryDo() を直接呼び出します。 関数querHander(){ console.log("エリア B のクエリ インターフェイス") } {querHander} を返す } </スクリプト> 必ずしもセットアップ関数にreactiveを書く必要はない多くの友人は、reactive はセットアップ関数内に記述する必要があると考えています。実際はそうではありません。必要な場所に記述できます。たとえば、次の aAreaAllFun 関数内で reactive を使用できます。 <テンプレート> <div> <h2>名前: {{ areaData.info.name}}</h2> <h2>年齢: {{ areaData.info.age}}</h2> <h2>性別: {{ areaData.info.sex}}</h2> </div> </テンプレート> <スクリプト> '@vue/reactivity' から { reactive } をインポートします。 エクスポートデフォルト{ 設定 () { {addDo,areaData}=aAreaAllFun() とします。 {addDo,areaData} を返します } } // これはAエリアページ上の特定のエリアのロジックです。function aAreaAllFun(){ areaData = リアクティブ({ 情報: 名前:「張三」 年齢:20歳 性別: '男性' } }) 関数addDo(){ console.log('私は初心者です') } {addDo,areaData} を返します } </スクリプト> ページに値を直接表示する方法上記の例では、名前、年齢、性別を実装したいので、areaData.info.xxxが必要です。 <テンプレート> <div> <h2>名前: {{ name}}</h2> <h2>年齢: {{ age}}</h2> <h2>性別: {{ sex}}</h2> </div> <button @click="ChangeCont">値を変更</button> </テンプレート> <スクリプト> 'vue' から { reactive,toRefs } をインポートします。 エクスポートデフォルト{ 設定 () { {名前、年齢、性別、ChangeCont}=aAreaAllFun() とします。 {名前、年齢、性別、ChangeCont} を返します } } // これはAエリアページ上の特定のエリアのロジックです。function aAreaAllFun(){ areaData = リアクティブ({ 情報: 名前:「張三」 年齢:20歳 性別: '男性' } }) 関数ChangeCont(){ // この方法で値を変更すると、ビューは応答しなくなります。[エラー] //エリアデータ.info={ // 名前:'Li Si', //年齢:21, // 性別:'男性' // } // ビューを正しく更新するにはこれで OK です [ok] エリアデータ情報名='123' エリアデータ.info.age=12 areaData.info.sex='男性' } // toRefs はレスポンシブ オブジェクトを通常のオブジェクトに変換できます。 // この共通オブジェクトのすべての値は参照です。 // ref になるので、値を使用する必要があります。 {ChangeCont,...toRefs(areaData.info)} を返します。 } </スクリプト> プロジェクトにおけるvue3のロジック抽出とフィールド表示に関するこの記事はこれで終わりです。より関連性の高いvue3のロジック抽出とフィールド表示コンテンツについては、123WORDPRESS.COMで過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Mysql 8.0.18 ハッシュ結合テスト (推奨)
>>: portainer を使用してリモート docker に接続するチュートリアル
1. <body> タグ: Web ページの本体をマークするために使用されます。body...
1. MySQL 5.7 のアンインストール1.1查看yum是否安裝過mysql CD yum li...
それは何ですか? GNU Parallel は、1 台以上のコンピュータでコンピューティング タスク...
重複したフォーム送信は、マルチユーザー Web アプリケーションで最も一般的で厄介な問題です。重複送...
数学、物理学、および一部の科学技術分野で使用される特殊記号は多数あります。Unicode コードには...
目次1. ツールの紹介2. ワークフロー3. 操作インターフェースとパラメータ設定(1)監視と再起動...
序文クラスメートが MLSQL Stack のストリーミング サポートを調査しています。そこで、フロ...
META タグは、一般的に タグと呼ばれ、HTML Web ページのソース コード内の重要な HTM...
VMwareaのインストールプロセスは説明しませんが、主にwin7イメージをロードする方法を説明しま...
前に書いたものは複雑すぎるので、シンプルなコアにしましょう <html> <ヘッド...
イメージは、GitHub と同様に Docker パブリック リポジトリに直接簡単にプッシュできます...
序文今日は、聖杯レイアウトとダブルウィングレイアウト、そしてそれらの違いについてお話しします。この2...
行内では、明るい境界線の色を個別に定義できます。基本的な構文<TR ボーダーカラーライト=co...
IPツールを取得 lombok.extern.slf4j.Slf4j をインポートします。 org....
Magento を頻繁に変更する場合、element.style に遭遇することがあります。 これは...