Home  >  Article  >  Web Front-end  >  Vuejs2.0 child component calls the method of parent component

Vuejs2.0 child component calls the method of parent component

小云云
小云云Original
2018-02-09 11:40:122240browse

Sometimes due to layout problems, the sub-component needs to pass data to the parent component and execute a certain method of the parent. This article mainly introduces the method (sample code) of the Vuejs 2.0 sub-component to access/call the parent component, which is required Friends can refer to it, I hope it can help everyone.

Not much to say about the code:

Child component:


##

<template> 
  <p class="isShowing" ref="isShowing"> 
    <p class="menu-wrapper" ref="scroll_warpper" v-show="!hid_show_switch"> 
      <ul ref="scroll_warpper_ul"> 
        <li class="menu-item" @click="goToFatherDetail(233)"> 
        </li> 
      </ul> 
    </p> 
    <v-loading class="isloading" v-show="hid_show_switch"></v-loading> 
  </p> 
</template> 
<script type="text/ecmascript-6"> 
  export default { 
    methods: { 
      goToFatherDetail (itemId) { 
        // this.$parent.$router.push(&#39;goToDetail&#39;); 
        console.log(&#39;子组件方法走了&#39; + itemId); 
        this.$emit(&#39;refreshbizlines&#39;, itemId); /* <span style="font-family: Arial, Helvetica, sans-serif;">itemId就是子要传的数据 - 这里很重要,refreshbizlines就是父组件$on监测的自定义函数不是父组件的自定义函数。*/</span> 
      } 
    } 
  }; 
</script>

Parent component:


<template> 
  <p class="main-wrapper"> 
      <p class="tab-wrapper"> 
        <p class="tab-item"> 
          <router-link to="/isShowing" class="table-item-text">正在热映</router-link> 
        </p> 
        <p class="tab-item"> 
          <router-link to="/willShow" class="table-item-text">即将上映</router-link> 
        </p> 
      </p> 
    </p> 
    <router-view class="items-show" v-on:refreshbizlines="goToDetail" keep-alive></router-view> 
  </p> 
</template> 
<script type="text/ecmascript-6"> 
  export default { 
    methods: { 
      goToDetail (itemId) { 
        console.log(&#39;父组件走你:&#39; + itemId); 
      } 
    }<strong> 
  }; 
</script></strong>

The parent component uses v-on to make a monitoring function to detect. The final generated code is similar to


on: {
   "refreshbizlines": function($event) {
    _vm.goToDetail(123)
}
}

So the principle is that the child component accesses the parent If the component's detection function refreshbizlines is accessed, the function below refreshbizline will be executed

goToDetail -- that is, the

goToDetail function of the parent component

Pay attention to the

of the parent component


v-on:refreshbizlines="goToDetail"

must be placed on the module name of your parent component calling the child component.


Related recommendations:


vuejs2.0 implementation of paging components using $emit for event monitoring data transfer_javascript skills

The above is the detailed content of Vuejs2.0 child component calls the method of parent component. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn