1. 程式人生 > 其它 >JSX條件渲染(四)——形式4種:js形式條件渲染 & 元素變數 & 行內條件渲染 & 阻止渲染

JSX條件渲染(四)——形式4種:js形式條件渲染 & 元素變數 & 行內條件渲染 & 阻止渲染

技術標籤:react知識jsreactjs

JSX條件渲染——形式4種:js形式條件渲染 & 元素變數 & 行內條件渲染 & 阻止渲染

  • js形式條件渲染
function showForm (flag) {
  // 根據引數flag的狀態顯示不同內容
  if(flag) {
    // 顯示登陸框
    return <div>登陸框</div>
  } else {
    // 顯示註冊框
    return <div>註冊框</div>
  }
}

  • 元素變數
function showForm (flag) {
// 根據引數flag的狀態顯示不同內容 let form = null; if(flag) { form = <div>登陸</div> } else { form = <div>註冊</div> } return form }
  • 行內條件渲染
function showForm (flag) {
  // return <div>{flag? '登陸': '註冊'}</div>
  // return <div>{flag ? <div>登陸</div>: <div>註冊</div>}</div>
return <div>{flag && <div>條件成立就顯示</div>}</div> }
  • 阻止渲染
function showForm (flag) {
  if (flag) {
    return null;
  }
  return <div>阻止渲染</div>
}

檔案結構

在這裡插入圖片描述

公共html檔案

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8"
>
<title>Document</title> <link rel="stylesheet" type="text/css" href="./style/style.css"> <!-- 第一步:引入相關js庫檔案 --> <script type="text/javascript" src="./lib/react.development.js"></script> <script type="text/javascript" src="./lib/react-dom.development.js"></script> <!-- babel檔案的作用:編譯React程式碼,使之變成原生js程式碼才可以在瀏覽器中執行 --> <script type="text/javascript" src="./lib/babel.min.js"></script> </head> <body> <!-- 第二步:頁面中需要提供一個容器 --> <div id="root"></div> <!-- 第三步:可以基於React實現前端功能 --> <script type="text/babel" src="./js/05-JSX條件渲染.js"></script> </body> </html>

在VScode中,在VScode中開啟,需安裝外掛Live Server,右鍵開啟Open With Live Server,開啟頁面

例項01-js形式條件渲染

js檔案

/*
  JSX條件渲染
*/
// js形式條件渲染
function showLoginOrRegisterForm (flag) {
  // 條件渲染
  if (flag) {
    // 登入表單
    return (
      <div>登入表單</div>
    )
  } else {
    // 登錄檔單
    return (
      <div>登錄檔單</div>
    )
  }
}
//此處為空或false時,顯示為——登錄檔單;true時——登入表單
let element = <div>{showLoginOrRegisterForm(false)}</div>

ReactDOM.render(element, document.getElementById('root'))

顯示

在這裡插入圖片描述

例項02- 元素變數

js檔案

/*
  JSX條件渲染
*/
// js形式條件渲染
// function showLoginOrRegisterForm (flag) {
//   // 條件渲染
//   if (flag) {
//     // 登入表單
//     return (
//       <div>登入表單</div>
//     )
//   } else {
//     // 登錄檔單
//     return (
//       <div>登錄檔單</div>
//     )
//   }
// }

// 元素變數
function showLoginOrRegisterForm (flag) {
  // 條件渲染
  let form = null
  if (flag) {
    form = <div>登入表單</div>
  } else {
    form = <div>登錄檔單</div>
  }
  return form
}
//此處為空或false時,顯示為——登錄檔單;true時——登入表單
let element = <div>{showLoginOrRegisterForm(true)}</div>

ReactDOM.render(element, document.getElementById('root'))

顯示結果同上

在這裡插入圖片描述

例項03-行內條件渲染

js檔案

/*
  JSX條件渲染
*/
// js形式條件渲染
// function showLoginOrRegisterForm (flag) {
//   // 條件渲染
//   if (flag) {
//     // 登入表單
//     return (
//       <div>登入表單</div>
//     )
//   } else {
//     // 登錄檔單
//     return (
//       <div>登錄檔單</div>
//     )
//   }
// }

// 元素變數
// function showLoginOrRegisterForm (flag) {
//   // 條件渲染
//   let form = null
//   if (flag) {
//     form = <div>登入表單</div>
//   } else {
//     form = <div>登錄檔單</div>
//   }
//   return form
// }

// 行內條件渲染
function showLoginOrRegisterForm () { 
    // true-顯示女;false-顯示男
  let gender = true
  return <div>{gender? <div><input type="radio"/></div> : <div><input type="radio"/></div>}</div>
}

//預設為空
let element = <div>{showLoginOrRegisterForm()}</div>

ReactDOM.render(element, document.getElementById('root'))

顯示

在這裡插入圖片描述

例項04-阻止渲染

js檔案

/*
  JSX條件渲染
*/
// js形式條件渲染
// function showLoginOrRegisterForm (flag) {
//   // 條件渲染
//   if (flag) {
//     // 登入表單
//     return (
//       <div>登入表單</div>
//     )
//   } else {
//     // 登錄檔單
//     return (
//       <div>登錄檔單</div>
//     )
//   }
// }

// 元素變數
// function showLoginOrRegisterForm (flag) {
//   // 條件渲染
//   let form = null
//   if (flag) {
//     form = <div>登入表單</div>
//   } else {
//     form = <div>登錄檔單</div>
//   }
//   return form
// }

// 行內條件渲染
// function showLoginOrRegisterForm () { 
//   let gender = false
//   return <div>{gender? <div>男<input type="radio"/></div> : <div>女<input type="radio"/></div>}</div>
// }

// 阻止渲染
function showInfo (flag) {
    //flag為false-顯示文字;為true-顯示空/白屏
  if (flag) {
    return null
  }
  return <div>阻止渲染</div>
}

// let element = <div>{showLoginOrRegisterForm()}</div>
let element = <div>{showInfo(false)}</div>

ReactDOM.render(element, document.getElementById('root'))

顯示

在這裡插入圖片描述