为了账号安全,请及时绑定邮箱和手机立即绑定

React天气预报

用create-react-app创建项目
样式用styled-components解决
数据用redux交流
定位用高德地图API
天气数据用和风天气API

展示

https://img1.sycdn.imooc.com//5d5dfc9b0001fb1408830493.png

PC端

https://img1.sycdn.imooc.com//5d5dfc8000015b5406221104.png

移动端

定位

在index.html中加入高德地图(key填自己的)

//html中
 <script type="text/javascript" class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="http://webapi.amap.com/maps?v=1.4.6&key=填你自己申请的KEY"></script>//JS中  promiselet AMap = window.AMapfunction getLocation() {    return new Promise((resolve) => {
        AMap.plugin('AMap.CitySearch', function () {                let citySearch = new AMap.CitySearch()
                citySearch.getLocalCity(function (status, result) {                    if (status === 'complete' &&
                        result.info === 'OK') {
                        resolve(result)//定位城市
                    } else {
                        resolve(null)
                    }
                })
            }
        )
    })
}
天气数据
//用了axios包发起请求import axios from 'axios'function getWeatherInfo(city) {    return axios          //填自己的KEY
        .get(`https://free-api.heweather.com/v5/weather?city=${city}&key=填自己的KEY`)
        .then(resolve => {            let data = resolve.data            return data.status === 'ok' ? data : null
        })
}
CSS用styled-components

https://img1.sycdn.imooc.com//5d5dfca4000146c108920719.png

好处就是模块化,CSS前缀会在build时自动补全,可以直接用JS操作一些东西.


JS CSS HTML 整个模块的东西都在一个js文件中,修改和维护很方便操作。

源码,DOME

源码参考github:https://github.com/weblzf/weather-react-learn
DOME:http://liuzhifei.net/weather/index.html



作者:泡沫的快乐
链接:https://www.jianshu.com/p/d0d5080f61b2

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消