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でのinfluxDB分散時系列データベースのインストールと関連操作について簡単に説明します。

influxDB の紹介influxDB は分散型時系列データベースです。 cAdvisor はリ...

BootStrap グリッド間に隙間を残す解決策

目次[例を見る]: 【本来の効果は以下の通り】理由は次のとおりです。 【解決】:要約するBootSt...

IE 環境での css-vars-ponyfill の使用に関する詳細な説明 (nextjs ビルド)

css-vars-ポニーフィルCSS 変数を使用して Web ページのスキニングを実現すると、互換...

CSS3で作られたレインボーボタンスタイル

結果: 実装コード: html <div class="buttons"&...

Navicat を MySQL に接続するときに発生する 2059 エラーの解決方法

最近、Djangoを学習しているときにデータベースを使用する必要があったため、MySQLで使用するた...

CSS でのナビゲーション バーとドロップダウン メニューの実装

1. CSSナビゲーションバー(1)ナビゲーションバーの機能ナビゲーション バーを使いこなすことは、...

MySQLインデックスが使用されない状況のまとめ

MySQL のインデックスの種類一般的に、次の 4 つのカテゴリに分類できます。通常のインデックス:...

mysql 5.7.20 win64 のインストールと設定方法

mysql-5.7.20-winx64.zipインストール手順のないインストール パッケージ: ht...

Web デザインのヒント: ページ レイアウトの簡単なルール

繰り返し: サイト全体で特定のページ デザイン スタイルを繰り返します。繰り返し要素としては、特定の...

Nginx がリクエストを処理する際のマッチングルールの詳細な分析

nginx はリクエストを受信すると、まず server_name でサーバーを照合し、次にサーバー...

Winows Server 2019 アクティベーション コードとボリューム ライセンス エディション KMS インストール キー GVLK

最近、社内文書の整理とファイルサーバーの構成を予定しています。以前はサーバー2003を使い慣れていま...

CSS 画面サイズ適応実装例

CSS 画面サイズの適応を実現するには、まず CSS3 @media メディア クエリを導入する必要...

外部ファイル(js/vbs/css)をインポートするときに文字化けを回避する方法

ページ内にはjs、cssなどの外部ファイルが導入されており、外部ファイルのエンコードが現在のページフ...

Vue ターンテーブル抽選の簡単な実装

この記事では、ホイール抽選を簡単に実装するためのVueの具体的なコードを参考までに共有します。具体的...

実用的な MySQL + PostgreSQL バッチ挿入更新 insertOrUpdate

目次1. 百度百科事典1. MySQL 2. PostgreSQL 3. MySQL に対する Po...