当子类继承并挂载父类时,父类是否运行生命周期方法?
React, Does parent class run lifecycle method when a child class inherit it and mounted?
我知道Child
组件可以调用BaseComponent
setTitle
方法。
但是,当Child
组件挂载时,BaseComponent
的生命周期方法componentDidMount
似乎不会执行。
class BaseComponent extends React.Component{
componentDidMount() {
console.log('baseComponent componentDidMount')
}
setTitle(title) {
document.title = title || 'default title'
}
}
class Child extends BaseComponent{
constructor() {
super();
}
componentDidMount() {
this.setTitle();
console.log('child componentDidMount')
}
render() {
return <div>react is awesome</div>
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
我也知道也许HOC
是更好的解决方案。如果使用es5
, mixins
是最好的方法。但这不是我的问题。那么,是否可以执行BaseComponent
生命周期方法
应该避免继承。就像你说的,HOC是正确的选择…你可以用super来调用父类:
class Child extends BaseComponent{
componentDidMount() {
super.componentDidMount(); // Call the parent class
this.setTitle();
console.log('child componentDidMount')
}
render() {
return <div>react is awesome</div>
}
}
相关文章:
- 是否可以从父类访问子类的属性
- 使用此选项选择父类内部的类
- 子类访问父类's闭包变量
- MAC操作系统-如何通过Java类运行应用程序(.app)
- 如何通过Prototype或jquery移除子类的父类基类
- JavaScript—父类和子类/对象的此问题
- 通过使用此组件,检索父类数据
- jQuery .not() 排除特定类的父类
- 如何在 jQuery 中获取具有特定父类的所有元素的内容,并将它们传递给 GET 变量
- 如何在单击父类的另一个子类时获取子类的值
- 初始化父类中的变量(JavaScript/CoffeeScript 习语)
- hover添加类-或子类:悬停以影响父类
- 唯一标识父类的元素
- 无法将值从实例对象传输到父类的实例数组中
- jQuery父类更改的子级
- 在父类更改时停止HTML5音频/视频
- 如何从父类中记录成员函数
- 如果类中没有子元素,则赋予父类
- 当子类继承并挂载父类时,父类是否运行生命周期方法?
- Javascript:如何在覆盖子类中的继承方法后运行父类的构造函数逻辑