在 `React` ES6 中使用 `Mixin` 的正确方法是什么
What is the correct way to use `Mixin` in `React` ES6
在 ES5 中:
var TodoApp = React.createClass({
mixins: [ReactFireMixin], //working fine
...
});
在 ES6 中:(使用 react cli 创建)
class TodoApp extends Component {
constructor(props) {
super(props)
}
mixins= [ReactFireMixin] //not working
...
}
正确的做法是什么?
Mixins 已弃用且不受 ES6 类 支持。参见 https://facebook.github.io/react/blog/2016/07/13/mixins-considered-harmful.html。几年前,我在一个项目中广泛使用了 mixin,最终它被 super-hard 维护。请改用组合。
react-mixin 解决了我的问题
代码:
class TodoApp extends Component {
constructor(props) {
super(props)
}
...
}
reactMixin(TodoApp .prototype, ReactFireMixin);
在 ES5 中:
var TodoApp = React.createClass({
mixins: [ReactFireMixin], //working fine
...
});
在 ES6 中:(使用 react cli 创建)
class TodoApp extends Component {
constructor(props) {
super(props)
}
mixins= [ReactFireMixin] //not working
...
}
正确的做法是什么?
Mixins 已弃用且不受 ES6 类 支持。参见 https://facebook.github.io/react/blog/2016/07/13/mixins-considered-harmful.html。几年前,我在一个项目中广泛使用了 mixin,最终它被 super-hard 维护。请改用组合。
react-mixin 解决了我的问题
代码:
class TodoApp extends Component {
constructor(props) {
super(props)
}
...
}
reactMixin(TodoApp .prototype, ReactFireMixin);