React App开发入门与部署指南

需积分: 5 0 下载量 26 浏览量 更新于2024-11-11 收藏 820KB ZIP 举报
资源摘要信息:"plant-trader入门教程详细解读" ### React 应用程序的基本概念 **Create React App** 是一个官方支持的用来快速搭建React单页应用程序的命令行工具。它提供了一套完整的构建配置,无需进行任何配置即可开始开发,使得开发者能够专注于编写JavaScript代码,而不必担心复杂的构建配置和依赖管理。 #### 开发模式运行应用程序 - **yarn start** 运行 `yarn start` 命令会在开发模式下启动应用程序。在此模式下,应用会在内存中构建,并在浏览器中自动打开默认的Web服务器地址(通常为 `***`)。当您进行代码更改时,应用会自动重新加载,并且任何linting(代码质量检查)错误都会显示在控制台中。这种即时反馈循环使得开发过程更加高效。 #### 测试运行程序 - **yarn test** `yarn test` 命令将启动一个交互式的测试运行程序,该程序监视文件更改并运行相关测试。这是开发过程中的重要组成部分,有助于确保代码的质量和功能的稳定性。它支持各种特性,如快照测试、代码覆盖率报告等,并且通常与Jest测试框架集成,Jest是React官方推荐的测试解决方案。 #### 生产模式构建应用 - **yarn build** 当您准备将应用部署到生产环境时,可以运行 `yarn build` 命令。该命令会将应用构建到项目的 `build` 文件夹中,确保React捆绑正确,并且构建经过优化,旨在实现最佳性能。构建完成后,`build` 文件夹内会包含编译后的静态资源文件,这些文件通常通过Web服务器提供服务。为了进一步优化性能,构建过程可能会对文件名进行哈希处理,确保每次发布时浏览器都能加载最新的文件而不是使用缓存的旧文件。 #### 自定义构建配置 - **yarn eject** `yarn eject` 是一个不可逆的操作,它会暴露内部的构建配置,如Webpack配置文件等。在使用Create React App时,所有的配置都是封装好的,通常不需要手动修改。然而,如果您需要自定义配置,比如更改构建的默认行为、添加特定的Webpack插件等,`eject` 命令可以将所有配置文件导出到项目的根目录,从而允许您对构建过程进行完全控制。这是一个高级特性,对于大多数项目来说可能是不必要的,因为它增加了配置的复杂性,并且可能会导致项目依赖特定于项目的构建工具配置。 ### 关键技术点 - **JavaScript**: 项目的核心编程语言,所有React应用都是用JavaScript编写的。它负责描述用户界面的渲染逻辑,以及实现应用的数据流和组件生命周期管理。 - **yarn**: 是一个JavaScript包管理器,用于管理项目依赖,与npm类似。yarn被设计用来解决一些npm在早期版本中遇到的性能问题,并提供更一致的依赖安装体验。 - **Webpack**: 一个现代JavaScript应用程序的静态模块打包器。它会分析项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(如SASS、TypeScript等),并将它们转换和打包为合适的格式供浏览器使用。 ### 结语 这个入门教程向我们展示了如何使用Create React App来创建一个React应用程序,并介绍了几个关键的npm脚本命令,这些命令允许我们在不同的开发和部署阶段操作应用程序。通过这个过程,我们可以快速上手React的开发流程,并深入理解现代Web应用程序的构建和测试机制。

2、为下面的程序的每一行标上注释; import requests import re import pandas as pd import time import datetime url = 'http://datacenter-web.eastmoney.com/api/data/v1/get?' name_list = [] code_list = [] trader_date_list = [] close_list = [] change_rate_list = [] buy_num_list = [] result_list = [] result_df = pd.DataFrame() for page in range(1, 4): params = ( ('callback', 'jQuery112305930880286224138_1632364981303'), ('sortColumns', 'NET_BUY_AMT,TRADE_DATE,SECURITY_CODE'), ('sortTypes', '-1,-1,1'), ('pageSize', '50'), ('pageNumber', str(page)), ('reportName', 'RPT_ORGANIZATION_TRADE_DETAILS'), ('columns', 'ALL'), ('source', 'WEB'), ('clientl', 'WE'), ('filter', "(TRADE_DATE>='2021-09-17')") ) response = requests.get(url, params=params) text = response.text print(text) # re准则查找数据 name = re.findall('"SECURITY_NAME_ABBR":"(.*?)"', text) # 名称 code = re.findall('"SECURITY_CODE":"(.*?)"', text) # 股票代码 trader_date = re.findall('"TRADE_DATE":"(.*?)"', text) # 交易日期 close = re.findall('"CLOSE_PRICE":(.*?)\,', text) # 收盘价 change_rate = re.findall('"CHANGE_RATE":(.*?)\,', text) # 涨幅 buy_num = re.findall('"BUY_TIMES":(.*?)\,', text) # 买入机构数量 # 将对应的列表里的数据全部加起来 name_list = name_list + name code_list = code_list + code trader_date_list = trader_date_list + trader_date close_list = close_list + close change_rate_list = change_rate_list + change_rate buy_num_list = buy_num_list + buy_num time.sleep(2) # 将所有列表合并成二维数组 result_list = [trader_date_list, code_list, name_list, close_list, change_rate_list, buy_num_list] # 将数据转为DataFrame格式 result_df = pd.DataFrame(result_list).T.rename( columns={0: '交易日期', 1: '股票代码', 2: '股票名称', 3: '收盘价', 4: '涨幅', 5: '买入机构'}) result_df['交易日期'] =pd.to_datetime(result_df['交易日期']) # 时间只取年月日 result_df = result_df.sort_values(by='交易日期', ascending=True) print(result_df)

2023-06-09 上传