react学习笔记3:组件

前端之家收集整理的这篇文章主要介绍了react学习笔记3:组件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1.组件demo

组件是react最重要的功能,react的核心就是组件化开发我们的项目。

我们一个页面可以由n个div组成:那么同样我们把这n个div结构就可以划分成n个react组件,最后形成我们的页面

我们要布局的页面包含:

header

center

footer

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import registerServiceWorker from './registerServiceWorker';

var arr=[
	<div className="header">header</div>,<div className="center">center</div>,<div className="footer">footer</div>
]
ReactDOM.render(
    <div>
		{arr}
	</div>,document.getElementById('root')
);
registerServiceWorker();

我们把这三部分改为组件:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import registerServiceWorker from './registerServiceWorker';

//设置组件 头
class Header extends React.Component {
  render() {
    return <div className="header">header</div>;
  }
}
//设置组件 中心
class Center extends React.Component {
  render() {
    return <div className="center">center</div>;
  }
}
//设置组件 尾部
class Footer extends React.Component {
  render() {
     return <div className="footer">footer</div>;
  }
}


ReactDOM.render(
    <div>
		<Header />
		<Center />
		<Footer />
	</div>,document.getElementById('root')
);
registerServiceWorker();

2.创建组件

2.1创建组件

组件采用类的继承方式创建:

//设置组件 头
class Header extends React.Component {
  render() {
    return <div className="header">header</div>;
  }
}

类名首字母大写

2.2调用组建

<Header />

如同单标签的引用方式

3.组件传值和接收

3.1传值

调用位置采用属性的方式设置传递值:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import registerServiceWorker from './registerServiceWorker';

//设置组件 头
class Header extends React.Component {
  render() {
    return <div className="header">header</div>;
  }
}
//设置组件 中心
class Center extends React.Component {
  render() {
    return <div className="center">center</div>;
  }
}
//设置组件 尾部
class Footer extends React.Component {
  render() {
     return <div className="footer">footer</div>;
  }
}


ReactDOM.render(
    <div>
		<Header name="小李子" />
		<Center />
		<Footer />
	</div>,document.getElementById('root')
);
registerServiceWorker();

3.2接收和显示

this.props.xx去接收:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import registerServiceWorker from './registerServiceWorker';

//设置组件 头
class Header extends React.Component {
  render() {
    return <div className="header">header {this.props.name}</div>;
  }
}
//设置组件 中心
class Center extends React.Component {
  render() {
    return <div className="center">center</div>;
  }
}
//设置组件 尾部
class Footer extends React.Component {
  render() {
     return <div className="footer">footer</div>;
  }
}


ReactDOM.render(
    <div>
		<Header name="小李子" />
		<Center />
		<Footer />
	</div>,document.getElementById('root')
);
registerServiceWorker();

显现如下:

4.组件嵌套

4.1嵌套

创建一个组件:

//设置组件 显示性别
class HeaderShowSex extends React.Component {
  render() {
    return <span>性别:男</span>;
  }
}

这个组件在header组件在中调用

//设置组件 头
class Header extends React.Component {
  render() {
    return <div className="header">header {this.props.name}<HeaderShowSex /></div>;
  }
}

显示如下:

4.2嵌套组件传值

我们在header组件调用位置把性别传到HeaderShowSex组件,

我们在header组件用this.props.sex获取,然后在HeaderShowSex组件调用位置用属性方式设置,在HeaderShowSex组件在用this.props.sex接收

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import registerServiceWorker from './registerServiceWorker';

//设置组件 头
class Header extends React.Component {
  render() {
    return <div className="header">header {this.props.name}<HeaderShowSex sex={this.props.sex} /></div>;
  }
}
//设置组件 显示性别
class HeaderShowSex extends React.Component {
  render() {
    return <span>性别:{this.props.sex}</span>;
  }
}

//设置组件 中心
class Center extends React.Component {
  render() {
    return <div className="center">center</div>;
  }
}
//设置组件 尾部
class Footer extends React.Component {
  render() {
     return <div className="footer">footer</div>;
  }
}


ReactDOM.render(
    <div>
		<Header name="小李子" sex="男" />
		<Center />
		<Footer />
	</div>,document.getElementById('root')
);
registerServiceWorker();

5.组件调用写法(单标签和闭合标签

我们上面都是使用单标签形式调用

<Header name="小李子" sex="男" />

react还支持闭合标签调用

<Header name="小李子" sex="男"></Header>

猜你在找的React相关文章