从今天开始,我们开启《手把手搭建Vue3中后台框架》系列文章,这是一个我们已经在生产中实际使用的项目,技术栈是:
【资料图】
我会在工作之余抽时间把整体框架的开发过程一点一点写出来,另外UI组件库我将更换为NaiveUI有技术不到位的地方,希望大家能指正出来。今天我们就从项目创建开始。
使用 Vite 创建项目pnpm create vite√ Project name: ... OpenDataV√ Select a framework: » vue√ Select a variant: » vue-ts
启动项目cd OpenDataVpnpm installpnpm run dev
配置基础开发功能创建完项目后,我们需要配置一些基础功能来满足开发要求,主要有以下几点:
目录别名配置打包配置开发服务配置环境变量的使用配置目录别名配置在项目开发的过程中,我们需要使用导入文件,可以采用相对导入和绝对导入的方式,相对导入在有些地方需要使用多个..来进行目录定位,所以通常我们都使用绝对定位,为了方便导入,可以给指定目录设置别名,引入是就不需要写长长的目录了。
首先在在vite.config.ts中增加别名配置:
import { resolve } from "path"export default defineConfig({ plugins: [vue()], resolve: { alias: [ { find: /@\//, replacement: resolve(__dirname, "src") + "/" } ], extensions: [".ts", ".js", ".jsx", ".tsx"], }})
在使用path这个包之前,需要安装@types/node这个包,因为我们使用的是ts,所以在项目当中就会有ts类型检查。因为有很多库并没有迁移至ts,所以ts提供了一种中间的处理方式,就是.d.ts文件,用来给特定的库添加类型说明。node本身并没有迁移至ts,所以我们在使用一些node库的时候就会报错,因此就需要安装类型说明:@types/node,只要安装在开发依赖下即可。
extensions的配置是使用别名时要忽略的文件后缀,官方不建议忽略.vue后缀,因此我们只配置了.ts、.js、.tsx、.jsx
配置完vite以后,我们还要配置tsconfig.json文件,让ts也认识这个别名。
{ "compilerOptions": { "baseUrl": "./", // 基础根目录 "paths": { "@/*": ["src/*"] }}
配置好别名以后,就可以在引入模块时使用了。
打包配置主要是配置打包的目标版本和分块大小,target表示在打包时无论我们使用的是哪个版本的JavaScript标准,都处理成es2015兼容版本。
build: { target: "es2015", chunkSizeWarningLimit: 1500}
开发服务配置当我们创建好项目启动的时候,默认启动项目的时候只能通过localhost访问,而且端口并不是我们指定的,所以我们首先要配置访问限制,方便其他人也能查看我们的开发页面,并要指定端口。
server: { https: false, host: true, port: 3000}
开发过程中一般不需要启用https,host可以配置为指定IP,也可以配置为布尔型,如果我们希望所有IP都能访问,可以将其配置为0.0.0.0或者true。
除了以上配置外,还有一个配置项proxy,这是一个代理配置,可以理解为网络代理,就是把我们的请求代理到其他的地址。要搞清楚proxy的用法,首先我们要了解前后端分离以后前端是怎么独立运行的。
在传统的web开发过程中,一般是通过后端来渲染前端页面数据,例如我们使用的Django Jinjia模板等。这个时候在开发的过程中就需要把整个服务跑起来。但是前后端分离的开发模式将前端和后端彻底分开了,仅通过API连接起来,这就使得前端开发的时候并不需要后端服务器,这种方式是怎么做到的呢?其实就是前端自己启动一个服务器来渲染前端页面数据,而不是通过后端渲染,只通过API来获取后端数据。
前后端完全分离的开发模式使得前端与后端的链接仅仅是中间的数据。那么如果在功能开发前就定义好接口和返回的数据格式,前端就可以通过假数据来测试已开发的功能,不需要等后端开发完后才能测试。对于假数据我们有多种方式去实现它,最常见的就是mock,因为前端已经有了自己的服务器,我们只要把假数据写到json文件中,通过前端服务器发给前端页面就可以了。实际上依然是前端从服务器拿到数据再渲染页面,只不过这个服务器是前端的自己启动的,而数据是固定的假数据而已。
理解上这个过程以后,我们再来看看proxy这个配置的意义。因为我们和后端约定好了接口和返回数据的格式,因此在编写前端页面的时候我们就可以写好这些请求和处理,但是我们的前端可以要从多个后端获取数据或者我们开发的时候是从本地服务器获取数据,但是联调的时候又要从真实后端获取数据,这个时候proxy就派上用场了。我们先来看一下proxy的配置示例:
proxy: { // 字符串简写写法 "/foo": "http://localhost:4567", // 选项写法 "/api": { target: "http://jsonplaceholder.typicode.com", changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, "") }}
proxy是通过{key: options}的方式去配置的,其中key是请求的前缀,而options则是我们需要转发的实际地址,例如以上示例:
/foo开头的请求转发到地址:http://localhost:4567。也就是说当我们在前端发送了/foo/xxx这个请求后,实际的请求会发送到http://localhost:4567这个服务去,而得到的返回值也是从这里发回来的。
/api开头的请求转发到地址:http://jsonplaceholder.typicode.com,并将地址中的api去掉。也就是说/api/user/info这个请求最终会变成http://jsonplaceholder.typicode.com/user/info请求。
通过代理的这种方式我们就可以很方便的切换数据来源,但是要注意了,这只是在开发阶段使用,如果部署到生产环境后就失效了,因为在生产环境我们前端是不会启动自有服务器的,通常都是通过nginx服务进行静态资源的转发。所以要记住了:以上只在开发阶段有用。
明确了以上知识点,那么proxy的配置就根据实际情况了使用了。在这里我们先不配置。
环境变量的使用配置在前端开发过程中,我们有很多有很多配置,现在通常都使用环境变量的方式配置,而vite也默认支持这种方式,在运行 vite 命令时,开发环境默认加载 .env.development,生产环境默认加载 .env.production,因此我们只需要配置对应的文件即可。
一般的环境变量有三个文件:
.env任何情况下都会加载。.env.development开发模式下加载。.env.production生产模式下加载。目前我们需要配置的有以下几个变量:
# 网站标题VITE_APP_TITLE = "后台管理"# 端口VITE_APP_PORT = 8800# 后端地址VITE_APP_BASE_URL = "http://localhost:9527"
这里的端口是我们前端服务器的端口,因此需要在vite.config.ts中引用,我们需要对这个文件做一些修改,将默认的加载方式改为函数加载:
import type { UserConfigExport, ConfigEnv } from "vite";import { loadEnv } from "vite";import vue from "@vitejs/plugin-vue";import { resolve } from "path";// https://vitejs.dev/config/export default ({ mode }: ConfigEnv): UserConfigExport => { const { VITE_APP_PORT } = loadEnv(mode, process.cwd()); return { plugins: [vue()], resolve: { alias: [ { find: /@\//, replacement: resolve(__dirname, "src") + "/", }, ], extensions: [".ts", ".js", ".jsx", ".tsx"], }, server: { https: false, host: true, port: Number(VITE_APP_PORT), }, build: { target: "es2015", chunkSizeWarningLimit: 1500, }, };};
修改了导入方式,并且通过vite提供的loadEnv函数加载对应的环境变量文件,然后获取其中的环境变量,并修改server中配置的port。
配置代码格式化一个好的项目,必须有统一的代码风格,但是在实际开发当中通常都是多人协作开发,因此我们必须想办法统一大家的风格,在前端开发中我们可以使用ESlint和Prettier进行代码风格统一配置。
在这之前每次我都把之前项目中的配置挪用到新的项目中,直到我发现eslint-config-alloy,这个项目是把最常用的配置帮我们做好了,因此我们可以很方便的使用它。
安装相关的包首先安装typescript和vue的相关支持。
pnpm install -D @babel/core @babel/eslint-parser @typescript-eslint/eslint-plugin @typescript-eslint/parser @vue/eslint-config-typescript eslint eslint-config-alloy eslint-plugin-vue vue-eslint-parser
在配置eslint和prettier之前需要说明的是必须使用.cjs作为配置文件的后缀,因为这些命令模式采用commonjs,而我们创建的项目package.json中type: module,要么选择修改package.json中的配置,要么采用.cjs后缀,我推荐使用.cjs后缀。
配置eslint在项目根目录增加.eslintrc.cjs文件,配置如下:
module.exports = { extends: [ "alloy", "alloy/vue", "alloy/typescript", ], parser: "vue-eslint-parser", parserOptions: { parser: { js: "@babel/eslint-parser", jsx: "@babel/eslint-parser", ts: "@typescript-eslint/parser", tsx: "@typescript-eslint/parser", }, }, env: { // 你的环境变量(包含多个预定义的全局变量) browser: true, node: true }, globals: { // 你的全局变量(设置为 false 表示它不允许被重新赋值) // // myGlobal: false }, rules: { // 自定义你的规则 "@typescript-eslint/prefer-optional-chain": "off", },};
不要问我为什么,安装官方给的配置就可以了。
配置prettier然后增加.prettierrc.cjs文件,配置如下:
module.exports = { // 一行最多 120 字符 printWidth: 120, // 使用 2 个空格缩进 tabWidth: 2, // 不使用缩进符,而使用空格 useTabs: false, // 行尾需要有分号 semi: true, // 使用单引号 singleQuote: true, // 对象的 key 仅在必要时用引号 quoteProps: "as-needed", // jsx 不使用单引号,而使用双引号 jsxSingleQuote: false, // 末尾需要有逗号 trailingComma: "none", // 大括号内的首尾需要空格 bracketSpacing: true, // jsx 标签的反尖括号需要换行 bracketSameLine: false, // 箭头函数,只有一个参数的时候,也需要括号 arrowParens: "always", // 每个文件格式化的范围是文件的全部内容 rangeStart: 0, rangeEnd: Infinity, // 不需要写文件开头的 @prettier requirePragma: false, // 不需要自动在文件开头插入 @prettier insertPragma: false, // 使用默认的折行标准 proseWrap: "preserve", // 根据显示样式决定 html 要不要折行 htmlWhitespaceSensitivity: "css", // vue 文件中的 script 和 style 内不用缩进 vueIndentScriptAndStyle: false, // 换行符使用 lf endOfLine: "lf", // 格式化嵌入的内容 embeddedLanguageFormatting: "auto", // html, vue, jsx 中每个属性占一行 singleAttributePerLine: false};
这个配置里详细说明了每一项的意思,可以根据自己的需求修改。除了这些配置外,我们还要配置vscode,以保证所有人编辑项目是都采用同样的设置。
配置.vscode/settings.json配置.vscode/settings.json文件。
{ // 使用项目的typescript而不是vscode自带的 "typescript.tsdk": "./node_modules/typescript/lib", "eslint.validate": [ "javascript", "javascriptreact", "vue", "typescript", "typescriptreact" ], "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, "files.eol": "\n", "editor.tabSize": 2, "editor.defaultFormatter": "esbenp.prettier-vscode", "[jsonc]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }}
配置完以后,有可能你会发现不生效,这时重启一下vscode,尝试一下是否会格式化,如果格式化异常可以查看一下问题:
默认格式化工具是否为prettier。在随便一个文件内容中右键,选择“使用...格式化文档”,会在编辑器上方弹出格式化工具。
默认工具一定要是Prettier,如果不是就选择下面的“配置默认格式化程序”,修改为Prettier。
Prettier工具的运行状态。查看编辑器右下角的Prettier前面是否为对号,如果不是就点击这里,会在看到输出日志,日志中的报错信息会告诉我们如何修复。我在上面使用的.cjs就是日志中提示的方式。
一般完成了这些问题,基本就可以正常使用了。
最后我们在package.json中的scripts里添加eslint格式化命令:
"lint": "eslint --ext .js,.ts,.vue src/ --fix"
配置husky配置好代码格式化以后,我们也无法保证开发人员会按照要求去写代码,因此需要做强制的检测,在提交代码前,执行检测,所以我们需要增加Git Hook钩子,在执行git commit命令时执行指定的检测脚本或者命令。
要注意:项目必须是已经上传到Git仓库才能使用此工具。
首先安装好对应的工具
pnpm install -D husky
使用一下命令在项目根目录下增加husky相关配置
# 增加配置文件,在项目根目录下执行此命令,会生成.husky目录npx husky install# 增加钩子拦截配置npx husky add .husky/pre-commit "pnpm lint"
到这里项目初始化就完成了,我们还有一些其他的配置需要做,这个就留在下一节吧。
标签:
凡注有"三板富 | 专注于新三板的第一垂直服务平台"或电头为"三板富 | 专注于新三板的第一垂直服务平台"的稿件,均为三板富 | 专注于新三板的第一垂直服务平台独家版权所有,未经许可不得转载或镜像;授权转载必须注明来源为"三板富 | 专注于新三板的第一垂直服务平台",并保留"三板富 | 专注于新三板的第一垂直服务平台"的电头。
- 手把手搭建Vue3中后台框架—初始化项目
- 走进中国海油南海东部油田:科技攻关助力增储上产 保障能源高质量供应 今日热门
- 转发
- 午评:创业板指跌逾1%创年内新低 CPO、云游戏概念大涨
- 印度零售巨头Reliance Retail据悉同SHEIN达成协议,将助后者在印建立全球出口供应链-全球聚看点
- 2000万粉丝卖不动货,问题出在哪?
- 今日要闻!2023年银川每月退休金涨多少钱 2022~2023年宁夏银川养老金上调方案细则最新消息
- 我国第四批预备航天员选拔已于2022年全面启动 天天要闻
- 每日热闻!港股异动 | 泰格医药(03347)早盘持续走低跌超4% 股价创开年来新低 一季度业绩归母净利约5.68亿元 同比增长9.65%
- 救救天涯_全球报道
- 当前速看:摆脱土地财政依赖,地方经济还需多元发展
- 每日精选:昔日千亿房企开展自救 停牌并跨界新能源
- 午间公告:距离“上能转债”停止转股仅剩最后半个交易日 短讯
- 领智三维联合西安工程大学参展“科创中国”纺织服装科技成果交易会-世界动态
- 湖南鸿新实业硅砂提纯项目举行投产仪式
- 河北高阳:纺织产业提档升级助推经济高质量发展|世界快资讯
- 广汇能源回应近期股价下跌:公司外销煤炭依然具备良好盈利空间
- 金科股份(000656.SZ)澄清:目前生产经营正常 与相关合作方未签署任何协议 世界看点
- 全球快消息!垃圾分类新时尚 寓教于乐趣味多
- 香港差估署:4月香港私人住宅楼价指数环比升0.54%至354.2点 创7个月高位_快讯
- 河北省衡水养老金调整最新消息 2022~2023年衡水养老金调整方案最新版
- 最“热”光伏展折射行业新动向:高效电池技术比拼激烈 光伏厂商掘金第二赛道_全球今热点
- 今日聚焦!2023年1季度文旅集团财务分析报告
- 23年承德养老金调整方案最新消息 承德企业退休职工2022年养老金调整方案 世界看热讯
- 【全球时快讯】2022~2023年保定养老金调整最新消息公布时间 保定退休涨工资最新消息2023
- 第二届中国国际花生产业高质量发展大会在青岛莱西举办 世界观天下
- 每日简讯:2023吐鲁番市退休人员养老金涨了吗?吐鲁番退休工资会上涨多少?
- 平安普惠浙江分公司:党建引领专业服务,暖心服务助力小微
- 新资讯:A股异动 | 云从科技放量大跌超18% 跌幅居市场首位 4.55亿股限售股解禁
- 投资FTX失败 淡马锡削减高管和部分员工薪酬_每日热文
- 全球标杆孵化器论坛举办 发布“全球城市创业孵化指数”_环球观天下
- 天天微头条丨迪迩秀 | 美国如何陷入枪支暴力的恶性循环?
- 农机现代化为粮食稳产增收保驾护航
- 医疗信息化概念股开盘拉升,朗玛信息涨超14%|世界独家
- 2023年1—4月份全国规模以上仪器仪表制造业利润增长9.6%_世界新要闻
- 神十五航天员乘组已在轨工作生活181天 环球短讯
- 泰顺开展食品安全进校园活动
- 三战下沉,猛推奥莱,盒马冲击上市稳了吗?-天天资讯
- 比亚迪:自主研发了常压油箱的燃油蒸汽排放控制技术 能符合蒸发排放法规标准_环球观速讯
- 天天热文:罕见!武汉财政局公开讨债,列了259家企业单位名单整版登报
- 2023年海南退休人员涨工资吗?今年企业退休人员养老金调整方案怎么样?
- 民企融资爬坡过坎 金融支持“几家抬”持续发力
- 【季报分析】Q1营收断崖式下跌,小鹏还能撑起全村的希望吗?
- 青海省养老金2023上调方案最新消息 青海省养老金2023上调方案计算公式新消息
- 【天天新视野】多家A股房企面临退市引市场担忧,地产大V们呼吁“史诗级救市政策”
- 每日关注!“六一”护苗再出发 黄陂区两部门开展节前校园食品安全专项检查
- 要闻:神舟十六号瞄准5月30日9时31分发射
- 云南省养老金调整方案计算公式新消息 2022~2023年云南省养老金调整具体细则全文 全球速读
- 世界短讯!着力打造中国“南部硅都” 湖南鸿新实业硅砂提纯项目举行投产仪式 许忠建出席并宣布正式投产
- A股异动 | 汉威科技涨6% 拟2700万元参设上海威感基金 投向与传感器领域相关股权投资项目 要闻
- 加加食品实控人杨振:零添加布局,驱动中高端市场 热头条
- 全球今日报丨传媒、游戏股持续活跃 名臣健康2连板
- 每日观察!精锻科技(300258.SZ):欧洲和北美的生产基地也在同步考察和规划中
- 【当前热闻】重庆养老金调整2023年最新消息 重庆2023年退休人员养老金会涨多少?
- 港股异动 | 维亚生物(01873)涨超7% 与深势科技就基于AI4S的靶向RNA小分子药物发现达成战略合作
- Riyadh Air洽购逾150架波音737 MAX机
- 上海2023年养老金涨多少钱 2023年上海市退休养老金调整方案细则公布了吗 世界快看点
- 饿了么杭州公司减资至19亿美元
- 方正证券鑫享三个月滚动债券C基金经理变动:杨浩波不再担任该基金基金经理|环球热消息
- 千亿明星房企陷入退市危机
- 世界即时看!销量增长遭遇“瓶颈” ,全面押注“新能源”的红旗能完成百万目标吗?
- 上证观察 | 无需担心房地产金融政策“急转弯”_世界观察
- 股价七连跌 净利“省”出来? 高鑫零售离领先者多远
- 今日热讯:成达万高铁全线首孔箱梁预制成功
- 要闻:2023端午节祝福语大全55句
- 金科股份澄清:公司目前生产经营正常 与相关合作方未签署任何协议
- 星辉娱乐:西班牙人提前一轮确定降级,下赛季将参加西乙联赛的比赛
- 赣锋锂业:公司或公司子公司认购澳大利亚Leo Lithium公司定增股份涉及矿业权投资
- 市场监管总局出台《合同行政监督管理办法》-每日短讯
- 天天即时看!紫金矿业将于6月30日派发末期股息每10股2.227444港元
- 广西成立产业链企业计量联盟
- C919完成商业航班首飞 大飞机概念股开盘活跃-每日精选
- 百亩金银花迎来采摘季 助力当地群众“钱袋子”鼓起来-环球快播报
- 要闻速递:养老金上涨3.8%,6月开始将迎来补发,退休人员养老金能够补发多少钱?
- 中国载人航天工程办公室:计划在2030年前实现中国人首次登陆月球
- 算力、CPO概念继续冲高 鸿博股份三连板
- 当前关注:温氏股份(300498.SZ):相比非瘟前,现在猪周期判断难度增大
- 天天新资讯:东风汽车:与武汉市财政局、武汉长江资产经营管理有限公司均无债权债务关系
- 吴忠颁发首张行业综合许可证
- 铁清镇白鹤村:春蚕迎丰收 蚕桑产业“破茧成蝶”
- 温氏股份(300498.SZ):2022年公司白羽肉鸡销量约1800万只,2023年销售目标约3000万只
- 当前关注:容百科技与亿纬锂能签订战略合作协议
- 铁清镇白鹤村:春蚕迎丰收 蚕桑产业“破茧成蝶”
- 当前速讯:广东有序推进落实工业产品质量安全主体责任
- 开评:三大指数集体高开 半导体、大飞机概念走强 观速讯
- 2023年陕西省养老金调整细则将公布,陕西退休人员上涨172元很简单吗? 天天资讯
- 环球信息:2023全国气浮机展|上海气浮机展|国际气浮机展
- 反渗透“膜法” 实现煤化工废水资源化|当前速讯
- 云南发布四项地方标准
- 环球要闻:星辉娱乐(300043.SZ):根据西甲联盟的相关升降级规则,西班牙人提前一轮确定降级,下赛季将参加西乙联赛的比赛
- 春立医疗拟续聘大信会计师事务所为2023年度审计机构 环球微动态
- 投融资周报:储能系统品牌麦田能源获超10亿元融资,由朝希资本领投;航天软件A股上市,最新市值超百亿丨05.20-05.26-全球短讯
- 今年(2023)各省的养老金上涨方案即将公布,3900以下企退人员涨幅能有10%吗
- 全球新动态:港股异动 | 申洲国际(02313)早盘高开超5% 2022年税后净利润约45.63亿元 同比上升约35.3%
- 2023年广东省养老金调整方案将公布,个人涨多少?很难达到170元吗?|世界速讯
- 1-4月全国新增减税降费及退税缓费4689亿元
- 上市公司理财降温 投资总额同比降四成
- 医疗信息化概念股开盘拉升 朗玛信息涨超10%_环球新要闻
- 索尼的新型空间现实显示器使用户可以查看3D全息图的内容|最新
- 全球热点!江苏银行:董事长超期服役10年,或违反“7年轮岗”监管要求
- 印度零售巨头Reliance Retail据悉同SHEIN达成协议,将助后者在印建立全球出口供应链-全球聚看点
- 天天微头条丨迪迩秀 | 美国如何陷入枪支暴力的恶性循环?
- 方正证券鑫享三个月滚动债券C基金经理变动:杨浩波不再担任该基金基金经理|环球热消息
- 天天新资讯:东风汽车:与武汉市财政局、武汉长江资产经营管理有限公司均无债权债务关系
- 赣锋锂业:公司或公司子公司认购澳大利亚Leo Lithium公司定增股份涉及矿业权投资
- 当前关注:容百科技与亿纬锂能签订战略合作协议
- 星辉娱乐:西班牙人提前一轮确定降级,下赛季将参加西乙联赛的比赛
- 索尼的新型空间现实显示器使用户可以查看3D全息图的内容|最新
- 上市公司热议高质量发展路径 人工智能、生物科技将扮演重要角色|全球速读
- 2020年闰月是几月份_2020年闰月是几月_全球信息
公司
- 23年承德养老金调整方案最新消息 承德企业退休职工2022年养老金调整方案 世界看热讯
- 每日简讯:2023吐鲁番市退休人员养老金涨了吗?吐鲁番退休工资会上涨多少?
- 【全球时快讯】2022~2023年保定养老金调整最新消息公布时间 保定退休涨工资最新消息2023
- 河北省衡水养老金调整最新消息 2022~2023年衡水养老金调整方案最新版
- 今日要闻!2023年银川每月退休金涨多少钱 2022~2023年宁夏银川养老金上调方案细则最新消息
- 云南省养老金调整方案计算公式新消息 2022~2023年云南省养老金调整具体细则全文 全球速读
- 青海省养老金2023上调方案最新消息 青海省养老金2023上调方案计算公式新消息
- 上海2023年养老金涨多少钱 2023年上海市退休养老金调整方案细则公布了吗 世界快看点
- 2023年海南退休人员涨工资吗?今年企业退休人员养老金调整方案怎么样?
- 【当前热闻】重庆养老金调整2023年最新消息 重庆2023年退休人员养老金会涨多少?
焦点
精彩推送
- 温氏股份(300498.SZ):现阶段肉猪有效饲养能力已提升至3000万头左右,初定年底饲养能力奋斗目标为3200万头
- 微动态丨有梦想勇敢追 河南姑娘宋学华登顶珠峰
- 山西印发高标准农田建设项目工程设施建后管护办法 每日快播
- 全球快资讯:抚州东临新区开展当季热销蔬菜快速检测工作
- 环球热文:东风汽车澄清:与武汉市财政局、武汉长江资产经营管理有限公司均无债权债务关系
- 探访成都“医育结合”新模式:托育机构如何解决家长“后顾之忧”?-全球观察
- 焦点观察:深交所:调整深证成指、创业板指、深证100等指数样本股
- 环球最资讯丨公司为国内CAE行业龙头,产品较全、产品性能对标海外龙头Ansys,具有稀缺性;受益于下游国防科技领域国产替代的需求加速,业绩确定性强,公司布局新产品,开拓民用市场,优化商业模式,成长路径清晰——5月29日研报挖矿
- 融资最新持仓曝光!减仓医药生物、电气设备、非银金融|环球快资讯
- 吉林高校办中医药文化节 民众近距离感受中医文化
- 焦点要闻:5月29日生意社螺纹钢基准价为3461.11元/吨
- 卡拉格:埃弗顿可以松一口气,但连着两年参与保级令人尴尬
- NBA寻求十年新电视转播合同 苹果(AAPL.US)、奈飞(NFLX.US)等多家媒体商欲竞标
- 紫金矿业(02899)公布未来三年(2023-2025年度)股东分红回报规划
- 上市公司热议高质量发展路径 人工智能、生物科技将扮演重要角色|全球速读
- 天天讯息:绿城中国(03900)附属以14.86亿元出售天津绿城全运村建设的51%股权
- 【天天速看料】彩客新能源(01986)附属山东彩客新材料完成第一轮增资
- 公司是全球少数实现微焦点射线源自产的X射线检测设备商,从0到1,微焦点X射线源突破海外垄断,公司计划于三年内实现微焦点X射线源的完全自主可控,有望贡献显著的业绩增量——2023年5月29日研报挖矿
- 世界新资讯:2023年儿童节饮食消费提示
- 怡俊集团控股(02442):稳定价格期结束、并无进行稳定价格行动及超额配股权失效|全球微头条
- 我国数字经济规模达50.2万亿元
- 今日快讯:5月29日两市盘前公告淘金:爱尔眼科拟3亿元-5亿元回购股份
- 非诚勿扰38期完整回放_非i诚勿扰
- 今日看点:稻香湖景酒店地址_稻香湖景酒店官网
- 2020年闰月是几月份_2020年闰月是几月_全球信息
- 北向资金单日净卖出95.62亿元,减仓食品饮料、非银金融、银行
- 生意社:5月29日顺丁橡胶装置开工动态 快资讯
- 5月28日机构推荐23只个股-天天新要闻
- 朝聚眼科(02219.HK):信托人于市场上购买合共400万股
- 环球热讯:【早知道】国产大飞机C919完成商业首飞;美国债务上限达成初步协议
- 环球快报:订单已超千架 C919首航带“飞”众多产业链公司
- 华阳变速:成为比亚迪的合格供应商 已中标比亚迪部分产品
- 买房不用掏首付,还能“倒拿”?这靠谱吗?
- 中信建投:证券板块调整不宜过度悲观 看好竞争格局优化驱动结构性行情 全球今日讯
- 当北京二手房开始下跌_世界快资讯
- 持续回购,股东增持!海尔智家又一新基地投产_环球要闻
- 智通A股龙虎榜统计|5月26日|世界今头条
- 信息:社会交往情况说明怎么写(社会交往)
- 智能马桶盖的缺点(智能马桶盖的优缺点)_世界快资讯
- 泰囧_囧泰
- 焦点滚动:异地跨行取款手续费怎么收 异地跨行取款手续费
- 订单在手“心不慌” 轮胎企业海外扩产忙
- 世界关注:看加速还是分歧[旺柴]
- 大盘低位震荡,ETF资金继续流入
- A股底部特征初现 人工智能等科创主线有望率先企稳|全球聚看点
- 南方锰业(01091)接获联交所复牌指引 继续停牌
- 焦点速看:中指·每日要闻:在津无房家庭首次公积金贷款还清后 仍可按首套房贷款
- 世界热推荐:武清区图书馆馆藏古籍(关于武清区图书馆馆藏古籍介绍)
- 【煤炭行业】煤炭开采行业跟踪周报:需求维持弱势,煤价承压震荡
- 科乐美:《合金装备3:重制版》将提升沉浸感
- 【世界速看料】平面向量坐标相乘公式_平面向量坐标运算公式
- 环球速递!中国网约车产业数据分析: 61.1%消费者表示司机准入门槛较低
- 全球资讯:超声波让动物陷入“可控长眠”,将应用于未来医疗或宇宙飞行
- 智通全球财经日志|5月29日
- 全球热讯:感受我国高水平科技自立自强活力 ——2023中关村论坛十项重大科技成果发布
- 从数实相融到算启未来 ——2023数博会彰显我国数字经济发展风向标_每日简讯
- 王小川感情_王小川老婆宋薇薇 全球百事通
- 蒸海带需要多长时间 蒸海带需要多久
- 星途·重庆璟途体验中心盛大开业-焦点快播
- 直播预告 | 广州市计生协“5·29会员活动日”强势启动,我们在直播间等您!|天天新要闻
- 世界快资讯丨柳州这地路面湿滑两车相撞,消防出动破拆救人
- 全球热讯:阿斯麦EUV光刻机关键部件的唯一供应商:落户中国
- 晚安·江津|水月观音,江津的!
- 快看点丨初学化妆怎样画眼影教程 初学化妆怎样画眼影
- 全球关注:vivo S17系列新品发布
- 超少年密码免费版全集
- 目标是夔的宝库(04)(跑团replay)_视点
- 当前快报:半径的符号在电脑上用什么键打_半径的符号是什么 怎么打出来
- 世界快资讯丨供桌一般都多高_供桌尺寸有什么讲究
- 每日时讯!海尔热水器售后服务电话号码武汉_海尔热水器售后服务电话号码
- 俄罗斯别尔哥罗德州遭炮击致1人死亡3人受伤
- 广州晴热天气将持续到月底,下月有雨水来救场 天天精选
- 总投资近200亿 苏锡通园区在苏州举办投资环境推介会 要闻
- 今日快看!华润水泥控股(01313):封开水泥与德庆燃气订立供气合同
- 关于安全的诗句四字词语 全球速读
- 幽兰行天下:5月29日淘金早参
- 广西科学家精神宣讲团进校园 开启同学们“探索南瓜”的神秘之旅
- 智慧广电固边工程建设“广西经验”向全国推广
- 当前快播:WhatsApp可能会带来用户名
- 天天百事通!知名房企跨界锂电行业了!看点有……
- 签下“生命补给线”项目意向协议,股价连续20%涨停,这家公司获机构扎堆关注|热闻
- 全球滚动:一天涌入超15万人!实探最“热”光伏展,电池厂商battle技术,头部企业掘金第二赛道
- 环球播报:药明康德(02359)注销5.53万份股票期权
- 全球今亮点!AI药物上市只是时间问题?专家激辩,呼吁临床CRO尽早拥抱AI
- 全球速讯:中播数据(00471)为菲律宾乡村提供卫星宽频和政府提供应急信息服务 5月29日复牌
- 春争日夏争时 夏收时间到!来看小麦、马铃薯、金银花丰收现场
- 普莱得(301353.SZ)将于5月30日在创业板上市 天天新动态
- 全球快看点丨2023 数博会闭幕,项目签约投资金额 613 亿元
- 禁停路段违章停车扣几分(禁停路段可以停几分钟) 每日热议
- 什么是天府好家规?四川省社会科学院专家:强调家国情怀 愿意为公共利益付出
- 【世界时快讯】【月亮看盘】大盘如期跌至年线,在凄风冷雨中见底
- 青海海东市2023退休养老金调整吗?今年退休养老金调整如何计算的?_世界观点
- 看热讯:中国龙工(03339)将于7月28日或之前派发末期股息每股0.1港元
- 环球快资讯丨青海的海南藏族自治州退休金有多少?2023如何调整退休养老金?
- 2023天津国际表面处理展览会8月重磅开幕! 天天关注
- 青海省2023年退休人员涨工资最新消息 今年养老金调整细则何时公布
- 春立医疗(01858.HK):拟续聘大信会计师事务所为2023年度审计机构及内控审计机构
- 天天观察:格尔木市养老金调整时间及方案2023 退休人员养老金发放标准如何?
- 山东女孩因“追星”努力学习,保送进北大!孩子追星你支持吗?_天天简讯
- 青海海西蒙古族自治州有退休金领取吗?2023企退人员养老金如何调整?|新动态