- 定义:用函数去定义组件,首先需要是函数,故得有返回值
这样渲染会报错,函数不可以成为节点
原因:直接写 demo 是函数的名字,直接把函数放到页面上
我们需要写成demo标签
ReactDOM.render(<demo/>,document.getElementById('test))
但这样也报错,因为demo标签,d小写,会从html中寻找demo标签,找不到会报错
正确写法:D大写,组件的名字需要大写。
function Demo(){
return <h1>sffff</h1>
}
ReactDOM.render(<Demo/>,document.getElementById('test))
总结:
- 要定义函数式组件,就需要将名字首字母大写
- 渲染时,要写成单标签形式(因为标签必须闭合,且函数不可以成为节点)
- 函数式组件本质上是函数,但我们并没有亲手调用,react帮忙调用
输出undefined 因为babel编译后开启了严格模式
执行ReactDOM.render(<Demo/>,document.getElementById('test))过程:
- 1.React解析组件标签 ,找到了Demo组件
- 2.发现组件是用函数定义的,随后调用该函数,将返回的虚拟DOM转为真实DOM,随后呈现在页面上。
函数式组件,函数名便是组件名。
函数式组件用props
按接收参数来写