React 学习 第八天

150 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

  1. 实现轮播图展示

    /*
    	1. 查看Carousel组件使用文档
    */
    
    import React from "react";
    import { Carousel } from 'antd-mobile';
    
    import axios from "axios";
    
    export default class Index extends React.Component{
        state = {
            swipers: [],
        }
        // 获取轮播图数据
        async getSwipers(){
            const res = await axios.get('http://localhost:8080/home/swiper')
    
            this.setState({
                swipers: res.data.body
            })
        }
        componentDidMount() {
            this.getSwipers()
        }
        renderSwipers(){
            return (
                this.state.swipers.map(val => (
                    <a
                        key={val.id}
                        href="http://www.baidu.com"
                        style={{ display: 'inline-block', width: '100%', height: 212 }}
                    >
                        <img
                            src={`http://localhost:8080${val.imgSrc}`}
                            alt={val.alt}
                            style={{ width: '100%', verticalAlign: 'top' }}
                        />
                    </a>
                ))
            )
        }
        render(){
            return (
                <div>
                    <Carousel
                        autoplay
                        infinite
                    >
                        {this.renderSwipers()}
                    </Carousel>
                </div>
            )
        }
    }
    
  2. 导航菜单

    /*
    	1. 使用Flex布局组件
    */
    
  3. 在脚手架使用sass

    • 安装Sass:npm i node-sass
    • 创建后缀为.sass或.scss的样式文件
    • 在组件中导入Sass样式文件
  4. 实现租房小组模块

    • 需要根据当前地理位置显示不同小组信息
  5. 顶部导航

  6. H5中的地理位置API

    • 根据当前地理位置,获取当前所在城市的房源信息

    • 地理位置API通过navigator.geolocation对象提供,通过getCurrentPosition方法获取

      navigator.geolocation.getCurrentPosition(position=>{
          // position对象表示当前位置
          // 常用: latitude纬度 / longitude 经度
          // accuracy 经纬度的精度/ altitude 海拔高度 / altitudeAccuracy 海拔高度的精度 / heading 设备行进方向 / speed 速度
      })
      

4.百度地图API

  1. 介绍

    • H5的地理位置API只能获取经纬度信息
    • 实际开发中,会使用百度地图/高德地图来完成地理位置的相关功能
    • 百度地图文档(JavaScript API)
  2. 使用入门

    • 申请百度账号和ak(使用秘钥)
  3. 使用步骤

    • 引入百度地图API的JS文件,替换申请的秘钥

      <script src="http://api.map.baidu.com/api?v=3.0&ak=ak_str"></script>
      
    • 在index.css 中设置全局样式

      html, body, #root, .app{
      	height: 100%
      }
      body{
          margin: 0px;
          padding: 0px;
      }
      
    • 创建Map组件,配置路由。并在Map组件中,创建地图容器元素,并设置样式

  4. 获取顶部导航城市信息

    • 打开百度地图JS API定位文档

    • 通过IP定位获取当前城市名称

      const myCity = new BMapGL.LocalCity()
      myCity.get((res)=>{
          const cityName = res.name
          console.log('当前定位城市名称为:', cityName)
      })
      

5.城市选择模块

  1. 功能分析

    • 切换城市,并且看到该城市下的房源信息
    • 功能:1.顶部导航栏 2.城市列表展示 3.使用索引快速切换城市 4.点击城市切换城市名称
    • 第三方组件:react-virtualized 长列表
  2. 顶部导航栏