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

Vue での $emit の使用法は何ですか

WBOY
リリース: 2022-03-17 11:31:41
オリジナル
6347 人が閲覧しました

vue では、「$emit」は現在のインスタンスでイベントをトリガーするために使用され、近くのパラメーターはリスナー コールバックに渡されます。サブコンポーネントは「$emit」を使用して親コンポーネントのカスタム イベントをトリガーできます。構文は「vm.$emit(event, [...args] )」です。

Vue での $emit の使用法は何ですか

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

vue での $emit の使用法とは何ですか

vue で $emit(eventName) を使用してイベントをトリガーします

$emit(eventName) は現在のインスタンスでイベントをトリガーします。追加のパラメータを指定すると、リスナーのコールバックに渡されます。

$emit(eventName) を使用してイベントをトリガーする

API での説明:

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

vue での $emit の使用法

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート