正文
JSX 原来只是一个表达式:
- JSX 标签可以赋值给一个变量:
let content = <div>七镜</div>
- JSX 可以将其作为参数在调用函数时传过去:
alert('<input />')
- JSX 标签可以打印在控制台上:
console.log(<div>七镜</div>)
为什么上面 3 点能实现?这是因为 JSX 标签是函数调用。既然是函数调用,JSX 标签就是一个 JavaSript 表达式,可以写在任何能容纳表达式的地方。
下面这段代码是不能工作的:
const div = <div />; div.appendChild("input");
之所以不能工作是因为 _jsx 创建的只是一个简单的对象,并不是 DOM 节点。所以它没有 appendChild 方法供我们调用!