2017-05-24 76 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

谢谢你,先生!这是一个非常有用的答案! –

相关问题