Tommy

Tommy

写代码是热爱,但也是生活 !
github

this.$emit:Vue父子組件傳值

在 Vue 中,子组件与父组件之间的通信需要使用 this.$emit () 方法。让我们首先回顾一下,父组件和子组件之间的通信使用了什么方法呢?#

1. 父组件向子组件传值:通过v-bind:的形式进行数据传递(也可以简写为冒号),然后子组件使用props来接收数据。
例如:
// 父组件
<todo-item v-bind:item="item"
           v-bind:index="index"
           v-for="(item,index) in list"></todo-item>
// 子组件
var TodoItemValue = {
        props: ['item','index'],// 'item','index'是父组件通过v-bind传递的数据
        template:"<li>{{item}}{{index}}</li>"
    } 
2. 子组件向父组件传值:这时候就需要使用this.$emit()方法了。

子组件向父组件传值的基本流程如下:#

第一步:在父组件中引入子组件#

  1. 使用 import 引入组件
  import indexImportOrder from './components/indexImportOrder'
  1. 声明
//定义组件
components:{
  indexImportOrder,
},
  1. 使用
<indexImportOrder ref="indexImportOrder"/>

第二步:子组件向父组件传值#

  1. 在子组件中,需要向父组件传值的地方使用 this.$emit ("function", param);
    其中,function 是父组件中定义的函数,param 是需要传递的参数。
//新订单页面跳转
viewBusiness(){
  let flag = false;
  this.$emit('closeMain', flag);
},
  1. 在父组件中,子组件引用处添加函数 v-on="function1";
    其中,function 是子组件中定义的函数,function1 是父组件中定义的函数,用于接收子组件传递的值并进行相应的数据处理,可以定义为相同的名称。
    v-on 可以简写为 @,@function="function1",@是 v-on 的简写形式。
<indexImportOrder ref="indexImportOrder" v-on:closeMain="closeMain"/>
  1. val 即为子组件中的 flag,即接收到的子组件参数。
closeMain(val){
  this.flag = val;
},

完成#

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。