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コンテナのインポ​​ートとエクスポートに関するチュートリアル

推薦する

DockerにTomcatコンテナを追加したときにホームページにアクセスできない問題の解決方法

質問docker run コマンドを使用して、tomcat コンテナが正常に追加されました。ポートも...

MySQL に IP アドレスを効果的に保存する方法と、文字列 IP と数値を変換する方法の詳細な説明

High Performance MySQL バージョン 3 (セクション 4.1.7) を見ると、...

LinuxでのMySQLのインストール手順

1. mysql tar ファイルをダウンロードします。参考: 2. インストールパッケージがあるデ...

MySQLデータベースがNULLを可能な限り避ける理由

MySQL の多くのテーブルには、NULL が列のデフォルト属性であるため、アプリケーションが NU...

nginx をシャットダウン/再起動/起動する方法

閉鎖サービス nginx 停止systemctl 停止 nginx起動するサービス nginx 開始...

JavaScript のガベージコレクションの仕組みの詳細な説明

目次ガベージコレクション (GC) はなぜ必要なのでしょうか?ガベージコレクションとは廃棄物の発生ガ...

LinuxにNginxをインストールする詳細な手順

1. Nginxのインストール手順1.1 公式サイトの紹介http://nginx.org/en/d...

HTML テーブルタグチュートリアル (44): テーブルヘッダータグ

<br />ソース コード内で表の構造を明確に区別するために、HTML 言語では、表のヘ...

Docker 経由で Redis 6.x クラスターをデプロイする方法

システム環境: Redis バージョン: 6.0.8 Docker バージョン: 19.03.12シ...

Element-UI の Select と Cascader にポップアップ下部アクション ボタンを追加する方法

下図のように、 selectポップアップレイヤーの下部に操作ボタンを配置するのが一般的な設計方法です...

MySQLが日付フィールドインデックスを使用しない理由の要約

目次背景探検する要約する背景テーブルでは、dataTime フィールドは varchar 型に設定さ...

VMware 構成 VMnet8 ネットワーク方法の手順

目次1. はじめに2. 設定手順1. はじめに1. NAT モード (VMnet8) は、仮想マシン...

Mybatis ファジークエリ実装方法

Mybatis ファジークエリ実装方法mybatis のリバース アシスタントは非常に使いやすく、通...

HTML メタの説明

導入メタタグは、HTML言語のHEAD領域にある補助タグです。 meta は、ページの説明、キーワー...

ウォーターフォールレイアウト+ダイナミックレンダリングの実装

目次典型的なウォーターフォールウェブサイトウォーターフォールフローレイアウトの原則一般的な考え方具体...