–React 的 JSX 里約定分別使用首字母大、小寫來區分本地組件的類和 HTML 標簽。
要渲染 HTML 標簽,只需在 JSX 里使用小寫字母開頭的標簽名
var myDivElement = <div className="foo" />; React.render(myDivElement, document.body);
要渲染 React 組件,只需創建一個大寫字母開頭的本地變量。
var MyComponent = React.createClass({/*...*/});
var myElement = <MyComponent someProperty={true} />;
React.render(myElement, document.body);
轉換
JSX 把類 XML 的語法轉成純粹 JavaScript
var Nav;
// 輸入 (JSX):
var app = <Nav color="blue" />;
// 輸出 (JS):
var app = React.createElement(Nav, {color:"blue"});
//注意,要想使用 <Nav />,Nav 變量一定要在作用區間內。
JSX 也支持使用 XML 語法定義子結點
var Nav, Profile;
// 輸入 (JSX):
var app = <Nav color="blue"><Profile>click</Profile></Nav>;
// 輸出 (JS):
var app = React.createElement(
Nav,
{color:"blue"},
React.createElement(Profile, null, "click")
);
JavaScript 表達式
屬性表達式
要使用 JavaScript 表達式作為屬性值, 只需把這個表達式用一對大括號 ({}) 包起來,不要用引號 ("")。
// 輸入 (JSX):
var person = <Person name={window.isLoggedIn ? window.name : ''} />;
// 輸出 (JS):
var person = React.createElement(
Person,
{name: window.isLoggedIn ? window.name : ''}
);
子節點表達式
// 輸入 (JSX):
var content = <Container>{window.isLoggedIn ? <Nav /> : <Login />}</Container>;
// 輸出 (JS):
var content = React.createElement(
Container,
null,
window.isLoggedIn ? React.createElement(Nav) : React.createElement(Login)
);
注釋
你只需要在一個標簽的子節點內(非外層)小心地用 {} 包圍要注釋的部分。
var content = (
<Nav>
{/* 一般注釋, 用 {} 包圍 */}
<Person
/* 多
行
注釋 */
name={window.isLoggedIn ? window.name : ''} // 行尾注釋
/>
</Nav>
);
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。