小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
JSX 简介
JSX(全称:
JavaScript XML),React 定义的一种类似于 XML 的 JS 扩展语法:JS + XML,本质是React.createElement(component, props, ...children)方法的语法糖。
const name = 'Josh Perez';
const element = <h1>Hello, {name}</h1>;
ReactDOM.render(
element,
document.getElementById('root')
);
JSX 语法规则
- 定义虚拟 DOM 时不要写引号:
var ele = <h1>Hello JSX</h1>。它不是字符串,也不是 HTML/XML 标签。它最终产生的就是一个 JS 对象。 - 标签中混入 JS 表达式时要用
{}:const element = <h1>Hello, {name}</h1> - 样式的类名指定不要用
class,要用className:return <div className="sidebar" /> - 内联样式要用
style={{key: value}}的形式去写 - 只有一个根标签
- 标签必须闭合
- 标签首字母:
- 若小写字母开头,则将该标签转为 HTML 中同名元素,若 HTML 中无该标签对应的同名元素,则报错。
return <div>Hello {props.toWhat}</div>; - 若大写字母开头,React 就去渲染对应的组件,若组件没有定义,则报错。
return <Hello toWhat="World" />;
- 若小写字母开头,则将该标签转为 HTML 中同名元素,若 HTML 中无该标签对应的同名元素,则报错。
JSX 练习
区分JS语句代码和JS表达式:
- JS 表达式:一个表达式会产生一个值,可以放在任何一个需要值的地方。
aa+bdemo(1)arr.map()function test() {}
- JS 语句/代码:
if(){}for(){}switch(){case:xxxx}