Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React中的编码标准_Reactjs - Fatal编程技术网

Reactjs React中的编码标准

Reactjs React中的编码标准,reactjs,Reactjs,我想知道你是如何构造你的代码的。我在写一个简单的组件,虽然我写了很多类似的组件,但这次我考虑了两种可能性 {this.state.scrollY > 200 ? <div className={style.MobileMenu}> <FontAwesomeIcon icon={faBars} /> </div> : null } {this.state.scrollY>200? : 无效的 } 如果在scro

我想知道你是如何构造你的代码的。我在写一个简单的组件,虽然我写了很多类似的组件,但这次我考虑了两种可能性

{this.state.scrollY > 200 ? 
    <div className={style.MobileMenu}>
        <FontAwesomeIcon icon={faBars} />
    </div> :
    null
}
{this.state.scrollY>200?
:
无效的
}
如果在scrollY属性的状态中存储的值大于200,则会呈现一个div。很好,但如果我的组件中有更多的条件渲染,我觉得这可能会导致无法读取的代码。因此,我真正的问题是,是否最好将UI的该部分的呈现逻辑委托给这样一个无状态组件:

import React from 'react';

export default ({scrollY}) => (
    {scrollY > 200 ? 
        <div className={style.MobileMenu}>
            <FontAwesomeIcon icon={faBars} />
        </div> :
        null
    }
);
从“React”导入React;
导出默认值({scrollY})=>(
{滚动>200?
:
无效的
}
);
然后只需将该组件导入其父级。这是常识吗,有用吗


谢谢,那太好了。我通常做的是,我将把它卸载到组件本身的不同功能中(除非它需要跨多个组件重用,在这种情况下,我肯定会按照您在问题中提出的建议),并使用前缀为“render”的名称。像这样:

export default class MyComponent extends Component {
    renderSomethingAwesome() {
        const {scrollY} = this.props;
        return {
            scrollY > 200 ? 
            <div className={style.MobileMenu}>
                ...
            </div> :
            null
        }
    }

    render () {
        return <div>
            {this.renderSomethingAwesome()}
        </div>
    }
}
导出默认类MyComponent扩展组件{
renderSomethingAwesome(){
const{scrollY}=this.props;
返回{
滚动>200?
...
:
无效的
}
}
渲染(){
返回
{this.renderSomethingAwesome()}
}
}

在上面的示例中,我使用的是类方法,但您也可以将其设置为静态函数,而不是直接访问道具,您可以从渲染函数本身传递它,这是完全正确的。我通常做的是,我将把它卸载到组件本身的不同功能中(除非它需要跨多个组件重用,在这种情况下,我肯定会按照您在问题中提出的建议),并使用前缀为“render”的名称。像这样:

export default class MyComponent extends Component {
    renderSomethingAwesome() {
        const {scrollY} = this.props;
        return {
            scrollY > 200 ? 
            <div className={style.MobileMenu}>
                ...
            </div> :
            null
        }
    }

    render () {
        return <div>
            {this.renderSomethingAwesome()}
        </div>
    }
}
导出默认类MyComponent扩展组件{
renderSomethingAwesome(){
const{scrollY}=this.props;
返回{
滚动>200?
...
:
无效的
}
}
渲染(){
返回
{this.renderSomethingAwesome()}
}
}
在上面的示例中,我使用了一个类方法,但您也可以将其设置为静态函数,而不是直接访问道具,您可以从渲染函数本身传递它