JSX條件渲染(四)——形式4種:js形式條件渲染 & 元素變數 & 行內條件渲染 & 阻止渲染
阿新 • • 發佈:2021-01-08
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'))
顯示