组件化嵌入式开发
组件化嵌入式开发
用组件化实现一个网页的头部 Banner 和 Footer:
//Header.js
import React from 'react';
class Header extends React.Component {
render(){
return(
<div>
我是头部
</div>
)
}
}
export default Header;
//Banner.js
import React from 'react';
class Banner extends React.Component {
render(){
return(
<div>
我是Banner
</div>
)
}
}
export default Banner;
//Footer.js
import React from 'react';
class Footer extends React.Component {
render(){
return(
<div>
我是Footer
</div>
)
}
}
export default Footer;
//index.js
import React from 'react';
import ReactDOM from 'react-dom';
import Header from './Header';
import Banner from './Banner';
import Footer from './Footer';
ReactDOM.render(
<div>
<Header/>
<Banner/>
<Footer/>
</div>
,document.getElementById('app')
)
简化出口: Header.js Banner.js Footer.js,都没有变化,新建一个App.js,让所有文件都从这一个出口出去
//新建 App.js
import React from 'react';
import Header from './Header';
import Banner from './Banner';
import Footer from './Footer';
class App extends React.Component {
render(){
return(
<div>
<Header/>
<Banner/>
<Footer/>
</div>
)
}
}
export default App;
//修改 index.js 为
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(
<App/>,document.getElementById('app')
)
在头部假定一个 logo 一个登录注册按钮
//新建 Logo.js
import React from 'react';
class Logo extends React.Component {
render(){
return(
<div>
<img src="https://fightingljm.github.io/images/book-cover.jpg" alt=""/>
</div>
)
}
}
export default Logo;
//新建 Signin.js
import React from 'react';
class Signin extends React.Component {
render(){
return(
<div>
<input type="button" value="登录"/>
<input type="button" value="注册"/>
</div>
)
}
}
export default Signin;
//修改 Header.js 为
import React from 'react';
import Logo from './Logo';
import Signin from './Signin';
class Header extends React.Component {
render(){
return(
<div>
<Logo/>
<Signin/>
我是头部
</div>
)
}
}
export default Header;