美文网首页
react 三元运算符和display:none条件渲染区别

react 三元运算符和display:none条件渲染区别

作者: 瓜田猹 | 来源:发表于2018-11-24 15:20 被阅读45次

    之前遇到一个需求,是jsx文件中有个弹窗组件,每次关闭弹窗组件再次打开,组件中所有的state需要恢复默认值,然而我是通过display:none进行组件显示和隐藏的,每次都会保留之前的state

    看如下代码

    <div className="box">
      { this.state.testParam?<div>三元运算符三元运算符</div>:'' }
      <div className={`${this.state.testParam?'':'hide'}`}>diplay diplay diplay</div>
    </div>
    

    当设置this.state.testParam = false时查看浏览器元素节点渲染


    35975A3E-7983-4e11-AA91-5B68CE7168F5.png

    看上图,浏览器只渲染了设置display:none的节点

    总结:当使用三元运算符进行条件渲染时,浏览器是不会渲染该元素节点的,但是设置为display:none则会渲染

    所以:当关闭组件时还需要保存组件state时就用display,反之就用三元运算符

    补充以下几种渲染方法

     <div className={`dialog-wrap ${this.state.showDialog?'':'hide'}`}>
           <DialogComponent ></DialogComponent>
     </div>
    {this.state.showDialog?<DialogComponent ></DialogComponent>:''}
    {this.state.showDialog&&<DialogComponent ></DialogComponent>}
    

    参考:https://blog.csdn.net/hsany330/article/details/78191872

    相关文章

      网友评论

          本文标题:react 三元运算符和display:none条件渲染区别

          本文链接:https://www.haomeiwen.com/subject/sjqyqqtx.html