React中避免使用引用方式(传递this,操作this)

180 阅读1分钟

将this传递过去,操作this,以实现相应功能的方式,暂且称为引用方式。如下:

class Test extends Component
{
    render()
    {
        return (
        <div>
		{util.testCode(this)}
        </div>
	    )
	}
}

export default Test;
// 在Util文件中操作传递过来的this
testCode(that)
{
	that.setState({
	    ...
	});
}

此种方式会造成嵌套较深,代码易读性较低,别人不容易看懂,自己回顾时需要更多时间思考,是哪里改变了state。所以更好的方式一定不是直接操作源类的this方式,让代码耦合性尽可能降低,是我们程序工程师的追求之一。

class Test extends Component
{
    render()
    {
        return (
        <div>
		{util.testCode()}
	</div>
	    )
	}
}

export default Test;
testCode()
{
    return 'test'
}

上面这种方式,不传递this,只让函数计算独立的功能,返回想要的值,例子可能不足够说明主题,但不要直接操作源类的this,避免掉入自己挖的坑中,是刚才这个坑中跳出来的老手的警告。祝珍重