React中的组件/模块, 组件化/模块化
1、基本概念
1.1、什么组件?
1、一个应用/版块/页面中用于实现某个局部的功能(包括html, js, css等)
2、把这些局部功能组装到一起就形成了完整的一个大的功能
3、主要目的在于: 复用代码, 提高项目运行效率。
1.2、什么组件化?
如果一个应用是用多组件的方式进行综合开发的, 那么这个应用就是一个组件化应用。
1.3、什么模块?
多个组件形成模块, 或者是一个提供特定功能的js文件, 主要特点在于耦合性低, 可移植性高, 执行效率好。
1.4、什么模块化?
如果一个应用都是用模块的形式来构建的,那么这个应用就是模块化应用。
2、构造函数创建组件
使用构造函数来创建组件时,如果要接收外界传递的数据,需要在构造函数的参数列表中使用props来接收;必须要向外return一个合法的JSX创建的虚拟DOM;
示例:(简单组件 / 带参数组件 / 复合组件)
//简单组件
function Name(props){
return <p>我叫:{props.name}</p>
}
//简单组件
function Gender(props){
return <p>性别:{props.gender}</p>
}
//简单组件
function Colleges(props) {
return <p>我有三个学科:{props.colleges}</p>
}
//复合组件
function Liao(){
return (
<div>
<Name name="itLiao"/>
<Gender gender="女"/>
<Colleges colleges={["h5 ","java ","Python"]}/>
</div>
)
}
//将虚拟DOM渲染到页面上
ReactDOM.render(
<Liao/>,
document.getElementById('app')
);
3、class关键字创建组件
示例:
class Liao extends React.Component {
render(){ return <h3>我叫:{this.props.name}, 性别:{this.props.gender}, 我有三个学科:{this.props.colleges}</h3> } }
ReactDOM.render(
<Liao name=“撩妹” gender=“男” colleges={["h5 ","java ",“Python”]}/>,
document.getElementById(‘app’) );
4、区别
1、构造函数创建的组件叫:无状态组件;
2、class关键字创建的组件叫:有状态组件;
3、有状态组件与无状态组件的本质区别在于是否有state(状态)属性。