三、react组件
一、组件的概念
1、组件允许我们将UI拆分为独立可复用的代码片段,并对每个片段进行独立构思。
2、从概念上类似于JavaScript函数,它接受任意的入参(props),并返回用于描述页面展示内容的React元素(JSX)
二、组件的创建方式
1、函数组件
- 函数组件的特点
- 函数组件(无状态组件):使用JS的函数创建的组件
- 函数名称以大写字母开头(建议)
- 函数组件必须有返回值,表示该组件的结构(虚拟DOM),且内容必须有顶级元素
例如(使用脚手架创建项目):
1 // 引入React的作用:通过babel将jsx编译成普通js代码会用到React.createElement,所以需要React 2 import React from 'react' 3 4 // 函数名首字母必须大写 5 function App() { 6 return ( 7 <div>这是第一个函数组件</div> 8 ) 9 } 10 11 export default App;
1 import React from "react"; 2 import ReactDOM from "react-dom"; 3 4 import App from "./App"; 5 6 ReactDOM.render(<App></App>, document.getElementById("root"));
注意:在
<div id="root"></div>
1 import React from "react"; 2 3 // 创建class类,继承React.Component 4 // 在里面提供render方法,在return里面返回内容 5 class App extends React.Component { 6 render() { 7 return <div>这是第一个类组件</div>; 8 } 9 } 10 11 export default App;
1 // 引入react和Component 2 import React, { Component } from "react"; 3 4 // 类组件 5 class App extends Component { 6 render() { 7 return <div>这是第一个类组件</div>; 8 } 9 } 10 11 // 导出 12 export default App;
三、组件传值-props
在React中是通过只读属性props来完成数据传递的
props:接受任意的入参,并返回用于描述页面展示内容的React元素
1 import React from "react"; 2 3 import Item from "./Components/Item"; 4 5 class App extends React.Component { 6 render() { 7 return <Item name="林则徐" next="壁立千仞无欲则刚"></Item>; 8 } 9 } 10 11 export default App;
2、子组件接收
1 import React from "react"; 2 3 const Item = (props) => { 4 return ( 5 <div> 6 {props.name}:海纳百川有容乃大,{props.next}。 7 </div> 8 ); 9 }; 10 11 export default Item;
2、类组件传值
父组件中通过自定义属性向子组件传值