2017-06-19 84 views
0

如何在Vue中調用方法其他組件?vue調用方法其他組件

我有分量HeaderSearch

<template> 
    <form action=""> 
     <div class="form-group"> 
      <div class="input-group"> 
       <span class="input-group-btn"> 
        <button class="btn" type="button"> 
         <i class="fa fa-search"></i> 
        </button> 
       </span> 
       <input type="text" @keyup="search(keyword)" v-model="keyword" class="form-control" placeholder="Search..."> 
      </div> 
     </div> 
    </form> 
</template> 
<script> 
export default { 
    data(){ 
     return { keyword: "" }; 
    }, 
    methods: { 
     search: function(keyword){ 
       if(keyword == ''){ 
        // Want call method fetchPost in PostHome component here 
       }else{ 

       } 
     } 
    } 
} 
</script> 

而且我有分量PostHome

<template> 
     <div> 
      <div class="box r_8 box_shadow" v-for="post in posts"> 
       <div class="box_header"> 
        <a :href="post.url"> 
         <h3 class="mg_bottom_10" v-text="post.title"></h3> 
        </a> 
        <small v-text="post.description"></small> 
        <a :href="post.url" class="box_header_readmore">Read more</a> 
       </div> 
       <div class="box_body"> 
        <a :href="post.url" v-show="post.thumbnail"> 
         <img :src="post.thumbnail" class="img_responsive" style="min-height: 300px;background-color: #f1f1f1; 
         "> 
        </a> 
       </div> 
       <div class="box_footer" v-show="post.tags.length > 0"> 
        <ul> 
         <li v-for="tag in post.tags"> 
           <a v-text="tag.name" href="javascript:void(0)"></a> 
         </li> 
        </ul> 
       </div> 
      </div> 
     </div> 
</template> 
<script> 
export default { 
    data(){ 
     return { 
      posts: null, 
     } 
    }, 
    methods: { 
     fetchPosts: function(){ 
      var url = base_url + '/user/posts' 
      this.$http.get(url).then(res => { 
       this.posts = res.data; 
      }); 
     } 
    }, 
    created: function(){ 
     this.fetchPosts(); 
    } 
} 
</script> 

我想,當用戶類型KEYUP來進行搜索,那麼如果

關鍵字= =''

調用方法fetchPost在PostHome組件的方法

+2

https://vuejs.org/v2/guide/components.html#Non-Parent-Child-Communication – wostex

+0

您還可以使用Vuex和調度,將獲取的職位及插入動作他們在國家通過突變。 https://vuejs.org/v2/guide/state-management.html –

+0

謝謝。我使用bus。$ emit和bus。$ on。它與我合作。 –

回答