1.通过 state 变量来控制是否渲染元素

类似于 vuev-if

方法是通过变量来控制是否加载元素的,如果变量为false,内容就直接不会渲染的。

class Demo extends React.Component{

    constructor(props){
super(props);
this.state = {
isShow:true
}
}
render(){
return (
<div>
{
this.state.isShow?(
<div>显示的元素</div>
):null
}
</div>
)
}
}
2.通过 style控制 display 属性

类似于 vue 中的 v-show

通过 display 属性来控制元素显示与隐藏

class Demo extends React.Component{

    constructor(props){
super(props);
this.state = {
isShow:'none'
}
}
render(){
return (
<div style={{display:this.state.isShow}}>显示的元素</div>
)
}
}
3.通过动态切换className

通过className切换类名来实现元素的显示和隐藏。

//.css文件
.is-show{

    display:none
}
//.js文件
class Demo extends React.Component{
constructor(props){
super(props);
this.state = {
isShow:true
}
}
render(){
return (
<div>
// 写法一
<div className={this.state.isShow?'old':'old is-show'}>显示的元素</div>
// 写法二
<div className={`${this.state.isShow?'':'is-show'} old`}>显示的元素</div>
</div>
)
}
}

第一种方法不适合频繁控制显示隐藏的情况,因为它会重新渲染元素,比较耗费性能。

react中控制元素的显示与隐藏的更多相关文章

  1. css3-10 如何控制元素的显示和隐藏(display和visibility的区别是什么)

    css3-10 如何控制元素的显示和隐藏(display和visibility的区别是什么) 一.总结 一句话总结:使用的时候直接在元素的样式中设置display和visibility属性即可.推荐使 ...

  2. 微信小程序点击控制元素的显示与隐藏

    微信小程序点击控制元素的显示与隐藏 首先我们先来看一下单个点击效果 我们来看一下wxml中的代码: <view class="conten"> <view cla ...

  3. legend3---19、要更多的从服务器端控制元素的显示和隐藏,而不要是页面端

    legend3---19.要更多的从服务器端控制元素的显示和隐藏,而不要是页面端 一.总结 一句话总结: 这样可以控制很多页面端的非法操作 1.html标签中data方式的数据,修改之后在标签上只显示 ...

  4. jquery控制css的display(控制元素的显示与隐藏)

    使用jquery控制div的显示与隐藏: $("#div的id").show()表示display:block, $("#div的id").hide()表示di ...

  5. jquery控制元素的显示与隐藏

    比如要控制div的显示与隐藏,一句话就搞定了.$("#id").show()表示display:block,$("#id").hide()表示display:n ...

  6. JS控制元素的显示和隐藏

    利用来JS控制页面控件显示和隐藏有两种方法,两种方法分别利用HTML的style中的两个属性,两种方法的不同之处在于控件隐藏后是否还在页面上占空位. 方法一: document.getElementB ...

  7. jQuery判断当前元素显示状态并控制元素的显示与隐藏

    1.jQuery判断一个元素当前状态是显示还是隐藏 $("#id").is(':visible');   //true为显示,false为隐藏 $("#id") ...

  8. js控制元素的显示与隐藏

    <body class="easyui-layout"> <div id = "centerId" data-options="re ...

  9. 仅使用css实现点击 控制元素的显示与隐藏!

    视频教程:https://www.bilibili.com/video/BV1uE411Q7tx?p=15&spm_id_from=pageDriver 大致方法:在被点击的元素后面 放一个c ...

随机推荐

  1. XSS Challenge(2)

    XSS Challenges http://xss-quiz.int21h.jp/ Stage #13 Hint:style attribute:要用到style属性,在style属性中有个expre ...

  2. qt 怎么让程序自带字体,就是说在操作系统上没有的字体

    字体要加到.qrc文件中 QString Widget::loadFontFamilyFromTTF() { static QString font; static bool loaded = fal ...

  3. 【Netapp】在模拟器中使用disk removeowner报错

    报错信息如下: Cluster2::storage disk*> removeowner NET-1.43 Error: command failed: Disk NET-1.43 is not ...

  4. 解析.xml并保存结点信息至.txt中

    @ 思路 利用java开源库dom4j解析.xml: dom4j操作xml - 读取xml,生成一个document实例: SAXReader reader = new SAXReader(); Do ...

  5. Codeforces Round #623 (Div. 2, based on VK Cup 2019-2020 - Elimination Round, Engine) C. Restoring

    C. Restoring Permutation time limit per test1 second memory limit per test256 megabytes inputstandar ...

  6. 数学--博弈论--巴什博奕(Bash Game)

    终于也轮到我做游戏了,他们做了好几个月的游戏了. 巴什博弈: 两个人做游戏,取石子,一个人最多可以可以取M个,至少取1个,最后取完的赢. 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先 ...

  7. Spring Cloud feign GET请求无法用实体传参的解决方法

    代码如下: @FeignClient(name = "eureka-client", fallbackFactory = FallBack.class, decode404 = t ...

  8. Kafka 的一些知识点整理【1】

    First: Kafka 是什么? Kafka 是一个发布订阅系统 最初是是LinkedIn 开发 最后交给Apache 开源组织 github地址:https://github.com/apache ...

  9. mercurial 入门

    安装 需要python的docutils,故 sudo pip3 install docutils 然后直接安装mercurial sudo pip3 install mercurial 如果超时,则 ...

  10. java中"no enclosing instance of type * is accessible"的解决方法

    这种情况一般发生在“在静态方法里面使用内部类” 测试代码: public class Test { public static void main(String[] args) { A a = new ...