加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

react学习笔记3:组件

发布时间:2020-12-15 06:47:27 所属栏目:百科 来源:网络整理
导读:1.组件demo 组件是react最重要的功能,react的核心就是组件化开发我们的项目。 我们一个页面可以由n个div组成:那么同样我们把这n个div结构就可以划分成n个react组件,最后形成我们的页面。 我们要布局的页面包含: header center footer import React from

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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读