炒股问题_股票知识问答_股票黑马推荐_问股网_在线诊股 设为首页 - 加入收藏 - 网站地图

股票大盘实时走势图可以用echarts实现么还有股票

发布时间:2024-01-01 10:24

引言

经过一段时间的React学习,React和Vue的开发确实有很大的不同,但是都是MVVM框架,因此上手没有很大的难度,这次用React+Redux开发一个天气预报小项目。源码地址:
https://github.com/BeichenloveNancy/React-study/tree/master/weather

 

技术栈

前端

React: 用于构建界面的MVVM框架

Redux: React的集中状态管理,方便快捷实现组件间通信

Redux-thunk: 常用的 redux 异步 action 中间件,用来处理接口请求等异步操作

styled-components: 以组件化的思想编写CSS样式

React-Redux:组件从Redux中读取数据,并向store分发actions以更新数据

antd:基于React的UI库

immutable:一种持久化数据结构,防止state对象被错误赋值

数据获取

axios: 实现数据接口请求(用本地json文件模拟数据)

 

项目预览

页面初始化

选择热门城市

搜索其它城市

实现功能

获取本地实时地位

初次打开页面,根据所在城市进行天气展示,需要我们进行一个实时地位的获取,这里我使用了高德地图Web JS API。首先我们在public文件夹下的index.html引入在页面添加 JS API 的入口脚本标签;

// key值需在官网上申请 <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=申请的key值"> </script>

我们使用官方提供的接口实现实时定位,因为需要首次渲染就展示天气信息,所以使用componenDidMount生命周期函数进行该请求:

componentDidMount() { // 防止作用域被修改 let _self = this; if(_self.props.init){ //eslint-disable-next-line AMap.plugin('AMap.CitySearch', function () { //eslint-disable-next-line var citySearch = new AMap.CitySearch() citySearch.getLocalCity(function (status, result) { if (status === 'complete' && result.info === 'OK') { // 查询成功,result即为当前所在城市信息 _self.props.getCity(result.city) _self.initWeather(_self.props.city) _self.props.getInit() } }) }) } else{ _self.initWeather(_self.props.city) } }

这里需要做一个判断,如果从其它页面更改了城市选择,回到此页面会重新进行一个加载因而修改掉更改后的城市,因此我们用一个标识符来判断是不是首次加载。

另外我们注意有个坑,React会提示找不到 AMap 实例问题。这里使用注释

//eslint-disable-next-line

写在每个出现AMap类的前面一行,其eslint忽略此行代码从而不报错

 

获取城市天气信息

和获取定位信息类似,我仍然使用的高德地图提供的API,这里我附上官网,lbs.amap.com/api/javascr…

 

echarts数据可视化

为了显示温度变化趋势,我使用了echarts的折线图进行一个数据的可视化

实现代码

initEchart(array) { let domChart = this.dom; //eslint-disable-next-line var myChart = echarts.init(domChart); let option = null; option = { xAxis: { show: false, type: "category", axisLine: { lineStyle: { color: "#fff" } }, grid:{bottom: "20"} }, yAxis: { show: false }, series: [ { data: array, type: "line" } ] } myChart.setOption(option, true); }

 

使用react-redux操作Redux

react-redux是react官方用来绑定Redux,将Provider放在最上层,从而实现store可以被下面组件接收

<Provider store={store}> <Router> <div> <Route exact path='/' component={MainPage}></Route> <Route exact path='/search' component={SearchCity}></Route> </div> </Router> </Provider>

组件中我们使用connect()来获取store里的state或者dispatch action,利用其特性可以简单方便地实现城市的更改,历史搜索以及判断标识符等数据的更改和获取。

 

中间件thunk的使用

redux默认的设定是dispatch只能接受一个对象参数,函数和promise都是不允许的,thunk中间件则能解决这个问题,redux-thunk 统一了异步和同步 action 的调用方式,把异步过程放在 action 级别解决,而component 没有影响,这里我配合react-redux实现redux数据的一个更新操作。

 

二级页面城市搜索

我在二级页面实现一个搜索城市,查询城市天气的功能,这里我使用本地json文件,并用axios实现请求,

axios.get('/city/citys.json').then((res) => { var tem = [] tem = res.data.citys.filter((item) => item.citysName.includes(value)) if(tem = []) { unfound = 'Not Found' } callback(tem.slice(0, 10)) loading = false })

我使用一个filter方法来进行条件筛选,返回含有输入值的数据,若为空,则返回一个提示。搜索框我采用了antd官方组件,它已经给我们封装好了

<Select showSearch value={this.state.value} placeholder='请输入城市名,快速查询天气信息' defaultActiveFirstOption='flase' showArrow='true' filterOption={false} onSearch={this.handleSearch} onChange={this.handleChange} onBlur={this.handleBlur} notFoundContent={null} style={{ width: '75%' }} bordered='false' loading={loading} notFoundContent={unfound} > {this.state.data.map(d => <Option key={d.id}>{d.citysName}</Option>);} </Select>

我用该组件文本框值变化时的回调函数handleSearch方法实现接口请求,筛选符合搜索条件的内容进行展示。并采用选中options(展示栏)的回调函数handleChange进行redux内state城市的一个更改,同时跳转到首页,代码:

handleSearch = value => { if (value) { loading = true fetch(value, data => this.setState({ data })); } else { this.setState({ data: [] }); } }; handleBlur = () => unfound = null; handleChange = value => { this.state.data.map((item) => { if (item.id == value) { let city = item.citysName.split(',')[0] this.props.changeCity(city) this.props.history.push('/') this.setState({ data: [] }); } }) };

结语

虽然这个项目只是一个简单的小项目,但是对于自己的技能提示还是有一定的帮助。在开发过程中也遇到了一些问题,俗话说解决问题的过程就是自己能力提升的过程,毕竟学习之路,道阻且长,行则将至。

源自:
https://juejin.im/post/5e7f0e84f265da79a323809a

声明:文章著作权归作者所有,如有侵权,请联系小编删除。

 

周末的信息铺天盖地,现在有一个苗头正在逐步显露,这也让人们看到了市场大跌的复杂性。作为散户,我们应当对各方面的消息保持谨慎,因为我们相对主力资金在信息获得和分析上,有着天然的差距。周末的消息面给人的印象不是很好,种种迹象表明,市场对今天的下跌预期高度一致,你想过没有?逆转往往就发生在预期高度一致时。

第一,周末的消息面其实是很复杂的,是一个利好和利空对冲的局面。

首先,周末的利好,也就是证监会的25条措施,大多是交易层面上的技术性内容,有些是早就应该解决的,现在拿出来当作是利好,市场的反应褒贬不一,作用应该是对冲一些利空,不是救市方针大计。

没有像以前那样的政策底时,汇金进场增持,降印花税或者降息,说白了没有解决市场的根本问题,缺钱,缺信心。

作为投资者,我们要看到,“活跃资本市场,提振投资者信心”,是一项系统工程,涉及方方面面工作,需要形成强大合力,证监会有关负责人表示,近期证监会加大跨部委沟通协调,抓紧研究推动若干重要举措,要对A股有信心。

其次是,周末市场对内资机构持有的空单,做了充分的讨论,大多是碎片化的信息,没有完整的信息链出来供大家参考。

其中我看到一个视频说,这些内资机构持有空单的时间是今年的1月30日开始,到今年的9月15日结束,如果按照这个时间来计算,大盘要到9月份才能出现一个阶段性底部,真让人沮丧。

如果按照这个说法来判断,从A股大盘的春节后的走势印证,这个说法是比较可靠的。因为1月30日之前,市场舆论大炒外资爆买,单一月份就爆买了1300多亿元,结果1月30日大盘收出高开低走的长阴线,然后大盘就出现了似涨非涨,似跌非跌的走势里,一直延缓到5月份大盘作出大双顶。

再次是,近期我们看到很多的专家纷纷开始讨论股市,它们指出了A股的种种不是,我个人觉得,这些不用说大家都知道,在股市低迷时,再去诊断A股是不是有病,只会加剧市场的悲观的气氛。

股市就是这样,关注的人越多,它越不会涨,反而经常把利好当做是利空,每一次大行情的启动前,都是在人们看到股票,就像吃了苍蝇一样的恶心,场内的人急着跑出去,外面的资金在等着场内的存量多杀多的情况下,悄然启动,看看现在,还有人在喊牛市。

最后是,富时A50 指数夜盘就跳水,盘中逐步走低,虽有反弹,但始终没有翻红,收盘前再度跳水,这给今天的A股大盘带来了较大的压力。

第二,从A股大盘的技术面来看,今天的走势也是不容乐观的,市场对下跌的预期,高度一致。

一是,但是有一点需要大家注意,过分一致的看空预期,能否导致大盘走势逆转?这个条件成不成立?这里指的逆转,是建立在今天大盘能够探出阶段性底部的基础上。

我在5月份大盘双顶构筑完毕后,给大家聊了大双顶下探的阶段性底部,是在去年12月23日的低点3031点附近,目前大盘距离这个位置有100点左右,今天的走势不会这么凌厉,下探到3100点,就是超跌了,也就是说这个探底,今天完成的概率较小。

最大的可能就是,大盘今天下试3100-3120点区间的支撑,如果盘中击穿3100点,大盘会出现盘中的强劲反弹,甚至收出深V形态,但这是一个应激反应,不能代表大盘探底完成。

我们去除利空和利好的影响,单看大盘技术走势,今天是一个承接上周五下跌走势的一个趋势,这固然会对场内人气造成打击,但是股市就是这样,机会都是跌出来的。

二是,此时我们要观察A股的科创50指数的走势,去年以前的A股,创业板是一个领先指标,现在应该把科创50指数当作领先指标。

因为该指数一直受制于5月9日大双顶的影响,和大盘走势相似,目前呈现出单边下跌的走势,是比较真实的走势,这里也是各路主力的主战场,里面的散户较少,比较能真实的反映出A股目前的状态。

该指数会先于大盘见底,它在见底之后的走势,就是大盘后期的走势,目前从周线分析,该指数还会有个探底的过程。

三是,沉舟侧畔千帆过,病树前头万木春,此时作为投资者,心情是压抑的,但是市场是由资本流动所决定的,这就是我们常说的趋势,一个趋势一旦形成,就会完成这个趋势的运行。

我们是散户,要耐心等待这个趋势完成,待到大势趋稳,在作打算,下跌途中是有反弹的的,就像7月28日的长阳,我就说是熊市多暴涨,这对一些短线高手是机会,但对大多数新手来讲,很难把握,也很难分辨。

保持一颗平常心,不为涨激动,不为跌沮丧,投资本身就是一个极度冷静的事业,纷纷繁繁的利好和利空,每一天都充斥着,作为一个个体,没有能力去全接受,我们只有坚持我们自己的判断和信心,对A股的信心,对自己的信心。

股市有风险,入市需谨慎。以上文章是本人原创,头条首发,抄袭必究!以上均是个人观点,仅供参考交流,不作为投资依据。个人水平有限,还请各路高人多多指教!

[股票大盘实时走势图可以用echarts实现么还有股票]

引用地址:https://www.gupiaohao.com/202401/46139.html

tags: