論理階層化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 に接続するチュートリアル
目次必要コアアイデアReactでスロットを実装する2つの方法必要コンポーネントを自分で書きました。コ...
導入: springboot プロジェクトを実行する Docker の構成は実は非常にシンプルで、L...
序文:自動化を記述した後、毎日サーバー上で実行する必要があります。このような問題に遭遇しました。Je...
1. SSHリモート管理SSH はセキュア チャネル プロトコルであり、主にリモート ログイン、リモ...
最近、小さなプログラムの開発を勉強して見直しており、学習結果のいくつかをメモしています。公式の We...
この記事では主に、MySQL 8.0 ドライバーと Alibaba Druid バージョン間の互換性...
必ずデータをバックアップすることを忘れないでください。データは貴重なものです! ! !コンピュータモ...
<p></p> の行間隔を設定するには、style="line-h...
背景webpackのバージョンを確認したいのですが、webpack -vを実行するとエラーが報告され...
Count(*) または Count(1) または Count([column]) は、おそらく S...
目次序文Vue 更新ビューパッチ同じVノードパッチVノード更新子供序文Vue は仮想 DOM を使用...
実際の業務や面接では、「配列の重複排除」の問題によく遭遇します。以下は、js を使用して実装された配...
いくつかの Qt インターフェース プログラムを作成しましたが、Qt 環境がインストールされていない...
文字の位置を取得するための同様の方法について学習します。 charAt() 文字列内の指定された位置...
1. フォワードプロキシとリバースプロキシの違いフォワード プロキシはクライアントのプロキシとして機...