鍍金池/ 問答/Python  HTML/ vue子組件復用,主要是在created中獲得外部搜索接口并且渲染頁面,每次使用

vue子組件復用,主要是在created中獲得外部搜索接口并且渲染頁面,每次使用都是不同的接口 如何進行復用?

1.簡單說就是在同一頁面中,有三個地方的結構是一模一樣的,只是接口不同,比如電影熱映,排行和推薦.
2.子組件熱映中獲取數據的代碼如下:

    <script>
    export default {
      name: 'reying',
      data () {
        return {
            blogs:[]
        }
     },
      created(){
        this.$http.get('/api/movie/in_theaters').then(function(data){        
                this.blogs = data.body.subjects;
                })
        }
    }
    </script>
    然后在template中對blogs進行遍歷操作,最后效果為輪播圖或者拖拽.

3.之后做另外兩個功能時使用到這個子組件,結構是一模一樣的,只有created中的接口不一樣,于是嘗試復用,失敗.
4.試圖將把created寫到父組件中,把接口數據復制給父組件data中的屬性,然后通過v-bind傳遞給子組件的props:

父組件中這樣寫:失敗.
<ReYing v-bind:blogs="blogs"></ReYing>
<ReYing v-bind:blg="blogs"></ReYing>
不知是不是v-bind互相影響了.
之后我把子組件復制了一份改了名字:
<ReYing v-bind:blogs="blogs"></ReYing>
<Top100 v-bind:blogs="blogs"></Top100>
頁面沒有報錯,但是只渲染了第一個組件,沒有渲染第二個組件.
父組件data中我是這么寫的:
data () {
return {
    blogs:[]
}

}
也試圖寫了兩個不同的屬性,blogs和blogs2,沒有報錯但也沒有渲染,查看結構中發(fā)現是這樣的,一臉懵逼....
<top100 blogs="[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]"></top100>

不知問題是否描述清楚,簡單說就是初學者試圖寫 豆瓣移動端 在電影界面 那三個拖拽上復用的問題,這三個接口到底要如何復用到組件中呢???

回答
編輯回答
空白格

把接口url通過props傳遞進去

2017年7月1日 17:08
編輯回答
葬憶

用vuex來寫試試,把三個不同接口取數據的方法封裝,然后寫在actions里,這樣通過commit 傳遞到motstions 在傳遞到state,在通過getters 來用,數據是共用的

2017年9月2日 00:33