vue3中父组件和子组件模块相互传递参数最常用方法:关于$emit 和 props 的用法

[ 2022-05-07 21:54:20 | 作者: admin ]
字号: | |

1、父组件数据传给子组件: props  

2、子组件可以使用 $emit 让父组件监听到自定义事件 。


vm.$emit( event, 参数 ) //触发当前实例上的事件

vm.$on( event, fn );  //监听event事件后运行 fn 


例如:

子组件:

<template>
  <div>
    <h3>父组件传给子组件的toCity:{{sendData}}</h3> 
    <br/><button @click="select('大连')">点击此处将‘大连’传给父组件</button>
  </div>
</template>
<script>
  export default {
    name:'selectCity',
    props:['sendData'], //用来接收父组件传给子组件的数据
    methods:{
      select(val) {
        let data = {
          cityname: val
        };
        //select函数运行后,自动触发eventShowCityName事件,在父组件会为事件绑定函数
        this.$emit('eventShowCityName',data);  //data是为函数准备的参数
      }
    }
  }
</script>


父组件:

<template>
    <div>
        <div>父组件的toCity{{toCity}}</div>
        <SelectCity @eventShowCityName="updateCity" :sendData="toCity"></SelectCity>
    </div>
<template>
<script>
  import SelectCity from "./SelectCity";
  export default {
    name:'index',
    components: {SelectCity },
    data () {
      return {
        toCity:"北京"
      }
    },
    methods:{
      updateCity(argData){  //触发子组件城市选择-选择城市的事件
        this.toCity = argData.cityname;  //改变了父组件的值
        console.log('toCity:'+this.toCity)
      }
    }
  }
</script>


https://blog.csdn.net/sllailcp/article/details/78595077

[最后修改由 admin, 于 2022-05-10 15:57:57]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2856

这篇日志没有评论。

此日志不可发表评论。