JSX 中的 If-Else
原文地址:http://wiki.jikexueyuan.com/project/react/else-jsx.html
你沒法在JSX中使用 if-else
語句,因為 JSX 只是函式呼叫和物件建立的語法糖。看下面這個例子:
// This JSX:
React.render(<div id="msg">Hello World!</div>, mountNode);
// Is transformed to this JS:
React.render(React.createElement("div", {id:"msg"}, "Hello World!"), mountNode);
// JSX 程式碼:
React.render(<div id="msg">Hello World!</div>, mountNode);
// 編譯成 JS 是這樣的:
React.render(React.createElement("div", {id:"msg"}, "Hello World!"), mountNode);
這意味著 if
語句不合適。看下面這個栗子
// This JSX:
<div id={if (condition) { 'msg' }}>Hello World!</div>
// Is transformed to this JS:
React.createElement("div", {id: if (condition) { 'msg' }}, "Hello World!");
這是不合語法的 JS 程式碼。不過你可以採用三元操作表示式:
React.render(<div id={condition ? 'msg' : ''}>Hello World!</div>, mountNode);
當三元操作表示式不夠健壯,你也可以使用 if
語句來決定應該渲染那個元件。
var loginButton;
if (loggedIn) {
loginButton = <LogoutButton />;
} else {
loginButton = <LoginButton />;
}
return (
<nav>
<Home />
{loginButton}
</nav>
)
相關文章
- React中JSX的理解ReactJS
- react中的jsx語法ReactJS
- 消除程式碼中的 if-else/switch-case
- Python 中的for,if-else和while語句PythonWhile
- React Native 中的JSX學習React NativeJS
- python中if語句的用法及if-else結構的使用Python
- 如何在Vue中書寫JSXVueJS
- vue render中jsx使用記錄VueJS
- JSX中ES6備忘JS
- jsxJS
- [React]JSX的用法ReactJS
- Android中的工廠模式(減少if-else和switch-case)Android模式
- 過多if-else分支的優化優化
- jsx-control-statements - jsx的一大利器JS
- React.js中JSX的原理與關鍵實現ReactJS
- [譯] JSX 的替代方案JS
- vue 使用jsx的配置VueJS
- js && jsxJS
- react在jsx語法中實現for迴圈ReactJS
- [譯]JSX的替代品JS
- if-else程式碼優化的八種方案優化
- 重拾JSXJS
- 簡介JSXJS
- Vue template To JSXVueJS
- 何為JSX?JS
- vite+jsxViteJS
- React jsx 中寫更優雅、直觀的條件運算子ReactJS
- Optional簡化空值判斷,減少程式碼中的if-else程式碼塊
- React 基礎_JSXReactJS
- React專題:JSXReactJS
- 深入理解JSXJS
- react理解(一)jsxReactJS
- JSX繫結事件JS事件
- 【譯】介紹JSXJS
- 實戰if-else 過多詳解
- 在Vue中使用JSX,很easy的VueJS
- vscode中eslint外掛es6,jsx支援VSCodeEsLintJS
- 騰訊 Omi 團隊釋出 mp-jsx - 原生小程式支援 JSXJS