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

推薦する

mysql ダーティ ページとは何ですか?

目次ダーティページ(メモリページ)ダーティページが表示されるのはなぜですか?メモリ管理メカニズムの簡...

docker CMD/ENTRYPOINT が sh スクリプトを実行する問題の解決策: not found/run.sh:

Dockerfile の設定に問題はありませんが、ENTRYPOINT コマンドを実行するとエラー...

Linuxの貼り付けコマンドの使い方

01. コマンドの概要貼り付けコマンドは各ファイルを列ごとに結合します。これは、2 つの異なるファイ...

MySQL における 8 つの一般的な SQL 使用例

序文MySQL は、2016 年もデータベースの人気において力強い成長傾向を維持し続けました。 My...

MySQL InnoDB ロックの概要

目次1. 共有ロックと排他ロック2. 意図ロック3. レコードロック4. ギャップロック5. ネクス...

HTML の div と span の違い (共通点と相違点)

共通点: DIV タグと SPAN タグは、コンテンツ全体を非表示にしたり、コンテンツ全体を移動した...

Linux FTP匿名アップロードとダウンロードが自動的に開始される問題を解決する

勉強や仕事で FTP サーバーを頻繁に使用する場合は、起動時に自動的に起動するように設定できます。設...

Docker環境にJenkinsコンテナをインストールする詳細なチュートリアル

推奨される Docker 学習教材: https://www.runoob.com/docker/d...

XHTML ドキュメントで JavaScript と CSS を正しく使用する方法

ますます多くのウェブサイトで、XHTML が HTML4 に取って代わって急速に普及しています。しか...

Linux でも利用できる人気の Windows アプリ 10 選

データ分析会社Net Market Shareによると、Linuxデスクトップオペレーティングシステ...

Vue3コンポーネントの開発詳細

目次1. はじめに2. コンポーネント開発1. コンポーネントの構成2. ヘッダーコンポーネントの開...

HTMLは無効なテーブル幅設定の問題を解決します

テーブルに table-layer:fixed スタイルを設定し、テーブル内の行が結合されていること...

LinuxシステムでのSystemC環境設定方法

以下はcentos7での設定方法ですsystemc ソース パッケージをダウンロード: System...

JavaScriptの再帰の詳細

目次1. 再帰とは何ですか? 2. 再帰を使って数学の問題を解く1. 1 * 2 * 3 * 4 …...