Vue2は応答性を提供するためにprovide injectを実装しています

Vue2は応答性を提供するためにprovide injectを実装しています

1. vue2 での従来の書き方

// 親コンポーネントは 'foo' を提供します
var プロバイダー = {
データ(){
    戻る {
        foo: 'バー'
    }
}
  提供する:
    fooProvide: this.fooFn // 参照型関数を渡す},
 方法:{
     fooFn() {
        this.foo を返す
      }
 }
}

var 子 = {
  挿入: ['fooProvide'],
  計算:{
      fooComputed(){
          return this.fooProvide() // 渡された関数は参照型なので}
  }
  作成された(){
    コンソールログ(this.fooComputed) 
  }
  // ...
}

2. vue2 での型破りな書き方ですが、使いやすいです。(使い方はおそらく同じですが、渡される値は this--> インスタンス全体になります)

// 親コンポーネントは 'foo' を提供します
var プロバイダー = {
データ(){
    戻る {
        foo: 'バー',
        他の:'...'
    }
}
  提供する:
    app: this // this 全体を過去として渡す},
  マウントされた(){
      const that = this
      タイムアウトを設定します(()=>{
          that.foo = '値を変更'
      },4000)
  }
}

var 子 = {
  挿入: ['app'],
  作成された(){
    console.log(this.app.foo) // this.app の下にあるものはすべて同じインスタンスへの参照であるため、応答します}
  // ...
}

3. vue2 + ts (これまで ts を使用したことがない場合は、実際にどのように使用すればよいかわからないため、ここに例を示します)

提供方法:
1. @Provide() foo = 'foo'
2. @Provide('bar') baz = 'bar'

注入方法:
1. @Inject() foo: 文字列
2. @Inject('bar') バー: 文字列
3. @Inject(s) baz: 文字列

例:

// 親コンポーネントは 'fooProvide' を提供します
@Provide('fooProvide') // 好きな名前を付けて、受け取った値と同じ値を渡してください。ただし、通常は以下の変数と同じにしてください。 fooProvide = this.refreshNumFn // 変数は渡される値を受け取ります。 refreshNumFn() {
  this.refreshNumを返す
}

// 子コンポーネントは@Inject('fooProvide') fooProvide: anyを受け取ります
値A() を取得: 任意 {
    this.fooProvide() を返す
  }
マウントされた(){
    console.log(this.valueA) // ...
}

レスポンシブ性を実現するための vue2 の provide inject 実装に関するこの記事はこれで終わりです。vue2 provide inject の関連コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vueはレスポンスの提供と注入の問題を解決します
  • Vue での provide/inject の詳細な適用について説明します
  • Vue での provide / inject の使用に関する簡単な分析
  • Vue で注入を提供するためのレスポンシブな監視ソリューション

<<:  mysql8.0 でユーザーを作成して権限を付与する際のエラーの解決方法の詳細な説明

>>:  Dockerコンテナのインポ​​ートとエクスポートに関するチュートリアル

推薦する

Linux ipcsコマンドの使用

1. コマンドの紹介ipcs コマンドは、Linux のプロセス間通信機能の状態を報告するために使用...

JS の 3 つの主要な問題、非同期性とシングルスレッドについて簡単に説明します。

目次シングルスレッド非同期シングルスレッドしかし、開発中にネットワーク リクエストやスケジュールされ...

Facebook によるインターネット サービスのほぼ完璧な再設計

<br />出典: http://www.a-xuan.cn/?p=197 先ほどFac...

MySQLのジョイントクエリについて詳しく説明します

目次ユニオンクエリ1. 中国の各省のIDと名前を照会する2. 湖南省のすべての地級市のIDと名称3....

MySQL 5.7.17 でパスワードを忘れた場合の対処方法

1. my.iniファイルにskip-grant-tablesを追加し、MySQLサーバーを再起動し...

CSSのline-heightを継承する方法

Line-height はどのように継承されますか?30px などの特定の値を書き込むと、この値が継...

vue3 の setUp とリアクティブ関数の使用方法の詳細な説明

1. いつsetUpを実行するかvue3 ではメソッドを正常に使用できるようになったことは誰もが知っ...

Docker ケース分析: Redis サービスの構築

目次1 マウントディレクトリとファイルを作成する2 Redisイメージを取得する3 コンテナを作成し...

CSS と HTML とフロントエンド テクノロジーのレイヤー図

フロントエンドテクノロジー層 (写真は少し極端ですが、参考までに) Javascript と DOM...

Vue の computed と watch の違いを理解する方法

目次概要計算された監視プロパティを監視する要約する概要Vue プロジェクトでは、computed と...

dockerでビルドしたnacos1.3.0の実装

1. nacosデータベースを再開します。データベース名nacos_configユーザー名とパスワー...

JDカルーセル効果を実現するための純粋なHTMLとCSS

JD カルーセルは、動的な効果を追加せず、主に位置決めの知識を使用して、純粋な HTML と CS...

dockerネットワーク双方向接続の詳細な説明

Dockerネットワークを見るdocker ネットワーク ls [root@master ~]# d...

MySQLを使用して列内の異なる値の数をカウントする例

序文この記事で実装されている要件は、実際には非常に一般的です。たとえば、ユーザーが登録したチャネルを...