ホームページ > ウェブフロントエンド > Vue.js > VueでのEmitの使用法は何ですか

VueでのEmitの使用法は何ですか

WBOY
リリース: 2022-03-23 17:51:40
オリジナル
12691 人が閲覧しました

vue では、emit は、親コンポーネントのメソッドを呼び出してデータを渡すためにサブコンポーネントによって使用されます。サブコンポーネントは、「$emit」を使用して親コンポーネントのカスタム イベントをトリガーできます。イベントがトリガーされた後、追加のパラメータはリスナー コールバックに渡されます。構文は「vm.$emit(event, arg)」です。

VueでのEmitの使用法は何ですか

#この記事の動作環境: Windows 10 システム、Vue バージョン 2.9.6、DELL G3 コンピューター。


vue での Emit の使用法とは何ですか

vue での $emit の定義については、次を参照してください:

vm.$emit( eventName, […args] )
ログイン後にコピー

パラメータ:

{ string} eventName

[...args]

現在のインスタンスでイベントをトリガーします。追加のパラメータはリスナー コールバックに渡されます。

1. 親コンポーネントは props を使用して、子コンポーネントにデータを渡すことができます。

2. サブコンポーネントは $emit を使用して、親コンポーネントのカスタム イベントをトリガーできます。

vm.$emit(event, arg) //現在のインスタンスでイベントをトリガーします

vm.$on(event, fn);//イベントeventをリッスンした後、fnを実行します。

サブコンポーネント

<template>  
  <div class="train-city">  
    <h3>父组件传给子组件的toCity:{{sendData}}</h3>   
    <br/><button @click=&#39;select(`大连`)&#39;>点击此处将‘大连’发射给父组件</button>  
  </div>  
</template>  
<script>  
  export default {  
    name:&#39;trainCity&#39;,  
    props:[&#39;sendData&#39;], // 用来接收父组件传给子组件的数据  
    methods:{  
      select(val) {  
        let data = {  
          cityname: val  
        };  
        this.$emit(&#39;showCityName&#39;,data);//select事件触发后,自动触发showCityName事件  
      }  
    }  
  }  
</script>
ログイン後にコピー

親コンポーネント:

<template>  
    <div>父组件的toCity{{toCity}}</div>  
    <train-city @showCityName="updateCity" :sendData="toCity"></train-city>  
<template>  
<script>  
  import TrainCity from "./train-city";  
  export default {  
    name:&#39;index&#39;,  
    components: {TrainCity},  
    data () {  
      return {  
        toCity:"北京"  
      }  
    },  
    methods:{  
      updateCity(data){//触发子组件城市选择-选择城市的事件  
        this.toCity = data.cityname;//改变了父组件的值  
        console.log(&#39;toCity:&#39;+this.toCity)  
      }  
    }  
  }  
</script>
ログイン後にコピー

[関連する推奨事項: "

vue.js チュートリアル"]

以上がVueでのEmitの使用法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
vue
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート