第一步主要說了一下框架的搭建及組件與路由的建立;css
接下來主要是樣式的添加及從後臺獲取數據:react
化美化一下咱們的公共組件: 在 /src/components/Common/
目錄下添加 NavBar.css
:ios
.nav-bar { margin-top: 0; margin-bottom: 0; padding-left: 0; list-style: none; display: flex; text-align: center; background-color: #fff; border-bottom: 1px solid #e5e5e5; } .nav-bar li { flex: 1; border-right: 1px solid #e5e5e5; } .nav-bar a { display: block; color: #333; padding: 10px; text-decoration: none; } .nav-bar .source { font-size: 12px; padding: 10px; border-right: 0 none; }
樣式要應用, 固然還必須得在組件中引用才行的喲, 修改/src/components/Common/NavBar.js
:git
import React from 'react'; import { Link, } from 'react-router-dom'; import './NavBar.css'; const NavBar = (props) => ( <ul className="nav-bar"> <li><Link to="/">Home</Link></li> <li><Link to="/about">About</Link></li> <li><Link to="/list">List</Link></li> <li className="source">來源於: {props.title}</li> </ul> ); export default NavBar;
固然, 也能夠開添加一些公共樣式, 這樣在每一個組件內均可以使用, 修改/src/index.css
:github
body { margin: 0; padding: 0; font-family: sans-serif; background-color: #f5f5f5; } .content { margin: 0; padding: 20px; font-size: 18px; background-color: #fff; border-bottom: 1px solid #e5e5e5; }
由於 index.css
在 index.js
中引入了, 咱們在其餘組件中不用引用, 直接使用就好啦, 修改關於組件/src/components/About/About.js
:axios
import React from 'react'; import NavBar from '../Common/NavBar'; const About = () => ( <div> <NavBar title="關於頁" /> <h1 className="content">這是關於頁</h1> </div> ); export default About;
其餘組件的修改也是同樣的, 即在組件中給 className
貶值爲樣式名便可;segmentfault
如今命令行切到項目根目錄, 執行yarn run start啓動項目, 在瀏覽器內查看添加樣式後的效果;api
這裏使用的 axios來獲取數據, 先安裝包:瀏覽器
$ yarn add axios
下面的實例演示一下react-router
在src
目錄內建立一個service
的目錄, 並建立一個 Connect.js
的文件:
import React, { Component } from 'react'; import axios from 'axios'; const Connect = (MyComponent) => { return class extends Component { constructor(props) { super(props); this.state = { data: [], }; } componentDidMount() { axios.get('http://rapapi.org/mockjsdata/23242/v1/question/page') .then(res => res.data) .then(data => { this.setState({ data: data.data.recordList }); }) } render() { return <MyComponent { ...this.props } data={this.state.data} /> } } } export { Connect, }
修改列表組件/src/components/List/List.js
:
import React from 'react'; import NavBar from '../Common/NavBar'; import { Connect } from '../../service/Connect'; import './List.css'; const List = (props) => { return ( <div> <NavBar title="列表頁" /> <ul className="content list"> { props.data && props.data.length > 0 && props.data.map((item, index) => ( <li key={index}> <strong>名稱: </strong> <span>{ item.answer }</span> <time>{ item.createTime }</time> </li> )) } </ul> </div> ); }; export default Connect(List);
如今命令行切到項目根目錄, 執行 yarn run start
啓動項目, 瀏覽器內查看 列表
組件, 是否是從服務端獲取的數據了;
如今跟據這些所掌握的內容, 就能夠開始的一個完整的 React.js
項目了。源碼