2017-05-24 2 views
1

以下の例では、イベントサービスを購読するためにcreatedライフサイクルを使用しています。それは通常の練習ですか?このようなことをするために、より適切な方法やライフサイクルの方法がありますか?初期化に使用するライフサイクルフックはどれですか?

const ViewComponent = { 
    data(){ 
    return { 
     pathname: window.location.pathname 
    } 
    }, 
    created(){ 
    eventService.on('routeResolved', (route) => { 
     this.pathname = route.pathname 
    })  
    }, 
    computed: { 
    component() { 
    return routes[this.pathname] 
    } 
    }, 
    render (h) { 
    return h(this.component) 
    } 
} 
+1

'mounted'は別のオプションです。あなたのサービスがコンポーネントのDOMがそこにあることを期待している方が良いでしょう。 – ceejayoz

答えて

2

初期化に使用するライフサイクルの方法は、アクセスが必要なものによってまったく異なります。 DOMを操作する必要がある場合は、mountedライフサイクルイベントまでDOMを操作することはできません。問題のようにイベントハンドラを設定するには、createdライフサイクルイベントを使用すると問題はありません。

主に1回の初期化アクションの場合は、createdまたはmountedのいずれかを選択します。コンポーネントが新しいプロパティを受け取るたびに何かが必要な場合は、beforeUpdatedまたはupdatedを使用します。

詳しくは、documentationをご覧ください。

+0

ありがとう、良い先生!非常に有益な答えです! –

関連する問題