128_React筆記2_JSX語法,元件書寫方法
阿新 • • 發佈:2018-12-26
一,JSX語法:
- 顧名思義:是一個看起來很像 XML 的 JavaScript 語法擴充套件
- 一種 JavaScript 的語法擴充套件,完全是在 JavaScript 內部實現的。
- 標籤內的語法
- 表示式用{},例如:<h1>{1+1}</h1>
- 沒有if和else,可以用三目運算子,例如:<h1>{i == 1 ? 'True!' : 'False'}</h1>
- 建立react元件用大駝峰,react元件例項化和html標籤用小駝峰
- 小駝峰:var myDivElement = <div className="foo" />;
- 大駝峰:var MyComponent = React.createClass({/*...*/});
- 小駝峰:var myElement = <MyComponent someProperty={true} />;
- Babel 轉譯器會把 JSX 轉換成一個名為 React.createElement() 的方法呼叫
-
下面兩種程式碼的作用是完全相同的: const element = ( <h1 className="greeting"> Hello, world! </h1> ); const element = React.createElement( 'h1', {className: 'greeting'}, 'Hello, world!' );
-
- 註釋:
- 在標籤內部的註釋需要花括號
- 在標籤外的的註釋不能使用花括號
-
ReactDOM.render( /*註釋 */ <h1>孫朝陽 {/*註釋*/}</h1>, document.getElementById('example') );
- 標籤外的語法
- 行內樣式:
- 屬性是小駝峰,有聯想,例如backgroundColor:'red'
-
-
<div style={{fontSize: '40px',color:'green'}}>
-
- 頁內樣式:
- 屬性是小駝峰,沒有聯想,例如backgroundColor:'red'
-
-
import React, { Component } from 'react'; export default class States extends Component { render() { return ( <div style={{myStyle}}>哈哈</div> ) } } var myStyle = { fontSize: 50, color: '#FF0000' };
-
- 行內樣式和頁內樣式共用
-
import React, { Component } from 'react'; export default class States extends Component { render() { return ( <div style={{myStyle,fontSize: '40px',color:'green'}}>哈哈</div> ) } } var myStyle = { fontSize: 50, color: '#FF0000' };
-
- 外部樣式:屬性是小橫線連線,有聯想
- 例如: background-color:'red'
- 行內樣式:
二,元件
- 函式定義元件
-
定義: function HelloMessage(props) { return <h1>Hello World!</h1>; } 使用: {HelloMessage()}
-
- const使用元件
-
定義: function HelloMessage(props) { return <h1>Hello World!</h1>; } const element = <HelloMessage /> 使用: {element}
-
- class類定義元件
-
定義: class Welcome extends React.Component { render() { return <h1>Hello World!</h1>; } } 使用: < Welcome />
-