作者:静候轮回 | 来源:互联网 | 2024-10-25 16:29
本文深入探讨了在React.js中为类组件实现自动绑定的方法与可能性。React.createClass会自动将所有方法绑定到实例,但在React的类组件中,这一功能并非内置。文章分析了如何通过特定技术手段或第三方库来实现类组件方法的自动绑定,以提升开发效率和代码可维护性。
根据this blog post特性,将React.createClass中的所有方法绑定到此特征并不是在React的类模型中内置的.
是否可以默认打开它?
我知道可以使用this.someMethod = this.ticksomeMethod.bind(this);诀窍是手动执行此操作,但是是否可以为所有方法执行此操作?或者我被迫为所有方法编写绑定?
我现在拥有的代码示例:
import MessageStore from '../stores/MessageStore.js';
export default class Feed extends React.Component {
constructor() {
this.state = {messages: MessageStore.getAll()}
//can I avoid writing this for every single method?
this._OnChange= this._onChange.bind(this);
}
_onChange() {
this.setState({messages: MessageStore.getAll()});
};
// componentDidMount, componentWillUnmount and render methods ommited
}
解决方法:
目前在React中没有要激活的功能.这根本不是一个选择.
您可以对一个类进行后处理并自动绑定每个函数,但这在许多类中可能是不必要的,并且会增加每个调用的开销(因为您的代码可能混合了需要绑定的函数和一些不需要绑定的函数).
您需要决定自动调整是否值得,或者只是在事件回调的上下文中使用绑定语法,这是Javascript中所需的典型位置,是可以接受的.