React条件渲染实例讲解使用

我们先创建一个用于演示条件渲染的组件

import './App.css';
import React from "react";
class App extends React.Component{
  constructor(props){
    super(props);
    this.state = {
      signIn: false
    }
  }
  increase(){
    this.setState({
      signIn: !this.state.signIn
    })
  }
  render(){
    let ligin = this.state.signIn?<span>已登录</span>:<span>未登录</span>
    return (
      <div className="App">
        { ligin }
        <button onClick = { this.increase.bind(this) }>{ this.state.signIn?"取消登录":"登录" }</button>
      </div>
    )
  }
}
export default App;

这里我们模拟了一个登录和未登录的情况

首先 我们在state中定义了一个signIn 这是个布尔类型的变量 比喻成 他为true 表示用户已登录 为false 表示用户还没有登录

然后 我们在render函数中定义了一个ligin变量 他用了三元运算符 这里是在判断 this.state.signIn是不是true

如果为true 则为已登录 否则 是未登录

然后 这个ligin就接受到了结果 然后我们将他插入在我们的页面元素中

运行的效果就是这样

然后我们点一下按钮

因为按钮的点击事件会改变signIn 他的条件改变了 渲染的元素就 不一样了

然后我们的条件判断也可以直接写在页面里

我们在state中再加一个list值

constructor(props){
super(props);
  this.state = {
    signIn: false,
    list: []
  }
}

我们加了一个list变量 他的值是一个空数组

然后我们在render中循环遍历这个list

render(){
  let ligin = this.state.signIn?<span>已登录</span>:<span>未登录</span>
  return (
    <div className="App">
      { ligin }
      <div>
        {
          this.state.list.map((item,index) =>{
            return <p key = {index}>{ item }</p>
          })
        }
      </div>
      <button onClick = { this.increase.bind(this) }>{ this.state.signIn?"取消登录":"登录" }</button>
    </div>
  )
}

但大家或许会发现 我们的数组是没有值的啊

用户一看 你这什么都没有 是不是出问题啦?

这是我们就可以判断 如果数组是空的 给用户一个提示

render(){
 let ligin = this.state.signIn?<span>已登录</span>:<span>未登录</span>
 return (
   <div className="App">
     { ligin }
     {
       this.state.list.length > 0?
       <div>
         {
           this.state.list.map((item,index) =>{
             return <p key = {index}>{ item }</p>
           })
         }
       </div>
       :
       <div>暂无数据....</div>
     }
     <button onClick = { this.increase.bind(this) }>{ this.state.signIn?"取消登录":"登录" }</button>
   </div>
 )
}

我们这里判断this.state.list的长度大于0 我们就循环渲染 如果是0 那就展示提示 暂无数据…

我们代码运行结果如下

到此这篇关于React条件渲染的文章就介绍到这了,更多相关React条件渲染内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解React 条件渲染

    在 React 中,你可以创建不同的组件来封装各种你需要的行为.然后还可以根据应用的状态变化只渲染其中的一部分. React 中的条件渲染和 JavaScript 中的一致,使用 JavaScript 操作符 if 或条件运算符来创建表示当前状态的元素,然后让 React 根据它们来更新 UI. 先来看两个组件: function UserGreeting(props) { return <h1>欢迎回来!</h1>; } function GuestGreeting(props)

  • React 条件渲染最佳实践小结(7种)

    在 React 中,条件渲染可以通过多种方式,不同的使用方式场景取决于不同的上下文. 在本文中,我们将讨论所有可用于为 React 中的条件渲染编写更好的代码的方法. 条件渲染在每种编程语言(包括 javascript)中都是的常见功能. 在 javascript 中,我们通常使用if else 语句,switch case语句和三元运算符编写条件渲染. 以上所有这些方法都适用于 React. 但是问题是,我们如何才能有效地使用它们? 像你知道的那样,React 具有 JSX 标记,通常我们需要

  • 详解React 的几种条件渲染以及选择

    对于一个展示页面来讲, 通常有好几种展示状态(以列表页为例): 数据为空, 空页面 取数据时发生错误, 错误页面 数据正常 加载状态 针对以上三种情况, react渲染列表的时候要正确判断并渲染出相应的视图, 也就是条件渲染. 不同于vue的v-if, v-show等框架提供的api, react的条件渲染都是js原生的再加上一点点的hack. 比如react文档提到的. if/else, && 和三目等等. 当然上面的都是常用的一些方法, 但是也存在着各种问题, 比如条件分支过多的的事时

  • React条件渲染实例讲解使用

    我们先创建一个用于演示条件渲染的组件 import './App.css'; import React from "react"; class App extends React.Component{ constructor(props){ super(props); this.state = { signIn: false } } increase(){ this.setState({ signIn: !this.state.signIn }) } render(){ let lig

  • 实例讲解React 组件生命周期

    在本章节中我们将讨论 React 组件的生命周期. 组件的生命周期可分成三个状态: Mounting:已插入真实 DOM Updating:正在被重新渲染 Unmounting:已移出真实 DOM 生命周期的方法有: componentWillMount 在渲染前调用,在客户端也在服务端. componentDidMount : 在第一次渲染后调用,只在客户端.之后组件已经生成了对应的DOM结构,可以通过this.getDOMNode()来进行访问. 如果你想和其他JavaScript框架一起使

  • React学习笔记之条件渲染(一)

    前言 在React中,你可以创建不同的组件各自封装你需要的东西.之后你可以只渲染其中的一部分,这取决于应用的state(状态).下面就来看看详细的介绍: 条件渲染 可以根据state的值进行组件的条件渲染.例如: function Greeting(props) { const isLoggedIn = props.isLoggedIn; if (isLoggedIn) { return <UserGreeting />; } return <GuestGreeting />; }

  • 对pandas将dataframe中某列按照条件赋值的实例讲解

    在数据处理过程中,经常会出现对某列批量做某些操作,比如dataframe df要对列名为"values"做大于等于30设置为1,小于30设置为0操作,可以这样使用dataframe的apply函数来实现, 具体实现代码如下: def fun(x): if x >= 30: return 1 else: return 0 values= feature['values'].apply(lambda x: fun(x)) 具体的逻辑可以修改fun函数来实现,但是按照某些条件选择列不是

  • 对pandas里的loc并列条件索引的实例讲解

    如下所示: def Family_feature(df): df['Fam_Size'] =df['SibSp']+df['Parch'] df['Fam_Size'].loc[df['Fam_Size'] == 0] = 1 df['Fam_Size'].loc[(df['Fam_Size'] > 1) & (df['Fam_Size'] <= 3)] = 2 # df['Fam_Size'].loc[df['Fam_Size'] == 2] = 2 # df['Fam_Size']

  • 实例讲解React 组件

    本章节我们将讨论如何使用组件使得我们的应用更容易来管理. 接下来我们封装一个输出 "Hello World!" 的组件,组件名为 HelloMessage: function HelloMessage(props) { return <h1>Hello World!</h1>; } const element = <HelloMessage />; ReactDOM.render( element, document.getElementById('

  • vue.js实现条件渲染的实例代码

    一.初探条件渲染 vue 的条件渲染,仍旧依赖于指令系统,下面逐个介绍: (1)v-if <div id="app"> <div v-if="c1">c1</div> </div> ...... var app = new Vue({ el: '#app', data: { c1: false } }); 当 c1 为真值的时候,渲染出 v-if 所绑定的元素,否则不渲染出该元素.渲染结果如下: <div id=

随机推荐