Jsx简介与元素渲染
Jsx
Javascript 的一种语法扩展
Jsx是一种JavaScript的语法扩展,它可以是变量,可以是表达式,可以使用部分函数,总之,Jsx有着诸多表现方式
JSX的特性更接近JavaScript而不是HTML, 所以React DOM使用camelCase小驼峰命名来定义属性的名称,而不是使用HTML的属性名称</li>
- 而非采用连接符
-
function jsx () {
const val = <h3>val</h3>
const exp = <h4>{1+1}</h4>
const str = <h5>{'string'}</h5>
const fun = () => {return 'function'}
const funCall = <div>{fun()}</div>
const ele = <div tabIndex="0"></div>
const ele2 = <div dataIndex={val}></div>
return (<div>jsx</div>)
}
React渲染
React 最终将一个组件,渲染到指定的根Dom节点中,通过 ReactDOM.render方法
ReactDOM.render(<App />, document.getElementById('root'));
转换依据(要考)
Babel 是会将 JSX 转换成一个名为 React.createElement 的方法调用的
- 故下面的代码是完全相同的
const ele = <h1 class='foo'>Hello</h1>
const ele = React.createElement(
'h1',
{class: 'foo'},
'Hello'
)