美文网首页
React项目实战一

React项目实战一

作者: 小王子__ | 来源:发表于2021-11-29 18:02 被阅读0次

1,项目搭建

  • 1,本地接口部署:
    创建并导入数据:数据库名称hkzf(好客租房)
image

数据文件在hkzfAPI -> db -> .sql文件

hkzfAPI上传百度网盘由于文件过多,需要开通超级会员,所以有需要的直接找我就行!

  • 2,启动接口:在hkzfAPI目录中执行npm start,启动swagger接口即可

2,项目搭建

  • 1, 初始化项目:npx create-react-app hkzf-app
image
  • 2, 项目初始化成功,切换到根目录hkzf-app: yarn start
image

目录结构:

image
  • 3, 调整项目中src目录结构如下:


    image

3,项目准备

image
  • 2,安装:$ npm install --save antd-mobile@next / yarn add antd-mobile@next
  • 3,导入要使用的组件
import { Button } from 'antd-mobile'
  • 4, 使用
<Button></Button>

4, 配置基础路由

  • 1,安装:yarn add react-router-dom
  • 2,导入路由组件:Router / Route / Link
  • 3, 在pages文件夹里创建Home->index.js和CityList->index.js两个组件
  • 4,使用Route组件配置首页和城市页面
    在App.js中引入
    import { BroswerRouter as Router, Route, Link } from 'react-router-dom'
    
    // 导入两个组件
    import Home from './pages/Home'
    import CityList from './pages/CityList'
    
    <Router>
      <div className="App">
        <ul>
          <li><Link to="/home">首页</Link></li>
          <li><Link to="/CityList">CityList</Link></li>
        </ul>
        <Route path="/home" component={Home}/>
        <Route path="/cityList" component={CityList}/>
      </div>
    </Router>
    

5, 项目整体布局

  • 1,两种布局页面
    分析:有tabBar的页面和无tabBar的页面
image

有tabBar布局的页面使用嵌套路由即可

  • 2,嵌套路由:路由内部包含路由
    • 用Home组件表示父路由的内容
    • 用News组件表示子路由的内容
image
  • 使用步骤
    • 1,在pages中创建News/index.js
    • 2,在Home组件中,添加一个Route作为子路由(嵌套的路由)的出口
    • 3,设置嵌套路由的path,格式以父路由path开头(父组件展示,子组件才会展示)
    • 4,修改pathname为/home/news,News组件的内容就会展示在Home组件中了。
    <Router>
      <div>
        <Route path="/home" component={Home}/>
      </div>
    </Router>
    
    const Home = () => {
      <div>
        <Route path="/home/news" component={News}/>
      </div>
    }
    

示例:

// Home组件
import React from 'react'
import { BrowserRouter as Router, Route, Link } from 'react-router-dom'
import News from '../News'
export default class Home extends React.Component {
  render() {
    return (
      <div style={{backgroundColor: 'skyblue', padding: 10}}>Home
        <Route path="/home/news" component={News}></Route>
      </div>
    )
  }
}

// News组件
import React from 'react';
export default class News extends React.Component {
  render() {
    return (
      <div style={{backgroundColor: 'green'}}>
          News
      </div>
    )
  }
}
image image

下篇开始实现tabBar,敬请期待

相关文章

网友评论

      本文标题:React项目实战一

      本文链接:https://www.haomeiwen.com/subject/sgulxrtx.html