2017-05-24 42 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生命週期事件才能這樣做。爲了像您一樣設置事件處理程序,您可以使用created生命週期事件。

主要針對一次性初始化操作,您將選擇createdmounted。如果您需要在組件每次接收新屬性時完成某些操作,則可以使用beforeUpdatedupdated

查看documentation的完整描述。

+0

謝謝你,先生!這是一個非常有用的答案! –