ホームページ  >  記事  >  ウェブフロントエンド  >  Vueの親コンポーネントと子コンポーネント間で値を転送する方法

Vueの親コンポーネントと子コンポーネント間で値を転送する方法

不言
不言オリジナル
2018-07-21 11:07:052881ブラウズ

この記事では、Vue の親コンポーネントと子コンポーネントの間で値を転送する方法について説明します。困っている人はぜひ参考にしてください。

背景: 最近、vue プロジェクトに取り組んでいます。ページのロジックが比較的複雑で、コードの量が多いため、いくつかのコンポーネントを抽出してコンポーネントに組み込みたいと考えています。そこで問題が生じます。
Vueは子コンポーネントで親コンポーネントの値を変更することを推奨していないので、これをやりたい場合は面倒な手順になります、そして、私はそのような操作が必要なので、情報を確認しました
まず、行きましょう。親コンポーネントのコードと引用 exp -group サブコンポーネント

<exp-group :grpVisible="grpVisible" :grpData="grpData" @updateData="acceptData"></exp-group>

grpVisible と grpData はサブコンポーネントに渡される属性で、1 つは通常の型で、もう 1 つはオブジェクトです

grpVisible: false,
grpData: {app: this.$route.query.app, exp: this.$route.query.exp},

次に、これら 2 つの属性の値をサブコンポーネントで取得し、親コンポーネントに渡します。 まず、子コンポーネントで定義します

props: {
  grpVisible: {
    type: Boolean,
    default: false
  },
  grpData: {
    type: Object
  }
},

まず、通常のタイプの grpVisible 属性を変更する場合は、定義する必要があります。詳細については、コードを参照してください

let demo1 = this.grpVisible
demo1 = true
this.$emit('updateData', demo1) //子组件

Parent コンポーネントは、acceptData

acceptData (value) {
  console.log(value)
}, //父组件

のパラメーター値を通じてこの値を受け取ります。がオブジェクトの場合、Object.assign を使用して新しい値を変数にコピーし、その変数を変更して親コンポーネントに渡す必要があります。コードは次のとおりです。

let demo1 = Object.assign({}, this.grpData)
demo1.app = 'binge'
this.$emit('updateData', demo1)

関連推奨:

その方法。 vue ツリー コントロールの z-tree を使用してデータを動的に追加します

JavaScript は画像の切り替えを実現するために DOM をどのように使用しますか?

以上がVueの親コンポーネントと子コンポーネント間で値を転送する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。