1. 安装 JDK
  2. 安装 Navicat 数据库工具
  3. 安装 IntelliJ IDEA 编译器
  4. 安装 Redis Redis安装(Windows环境下Redis安装)
  5. maven3.6.3 安装 Windows系统Maven3.6.3下载与安装
    • apache-maven-3.6.1/conf 目录下配置 settingsapplication.xml 文件 主要用于配置 Maven 的行为和外部依赖
    • apache-maven-3.6.1 目录下创建 repo 文件夹
  6. 安装 IntelliJ IDEA 插件
    插件
    插件
  7. 项目 .idea 目录下 misc.xml 文件配置 Yapi
    1
    2
    3
    4
    5
    6
    <component name="yapi">
    <option name="projectToken">your yapiToken</option>
    <option name="projectId">789</option>
    <option name="yapiUrl">your yapiUrl</option>
    <option name="projectType">api</option>
    </component>
  8. 安装 Xshell
  9. 安装 XFTP

友情链接:

  1. Free MyBatis plugin

标识符

  1. 如 类 的名字
  2. 标识符命名规则
    • 可以由 字母、数字、下划线 ( _ ) 和美元 ( $ ) 符组成,不能以数字开头
    • 标识符严格区分大小写
    • 不能是Java的关键字和保留字
    • 标志符的命名最好能反映出作用
阅读全文 »

设计原型:
大屏设计
项目成果:
项目成果

以上大屏数据为模拟数据

脚手架命令:pnpm create vite my-react-app –template react-ts

一、项目描述

  • 一个基于 React、TypeScript、Vite、Redux、DataV、ECharts 框架的 “ 数据大屏项目 “。支持数据动态刷新渲染、屏幕适配、数据请求模拟、局部样式、图表自由替换/复用等功能。

  • 项目全屏展示点击右上角全屏按钮或(按 F11)。

  • 项目环境:react@18.2.0typescript@5.2.2vite@5.2.0echarts@5.5.0pnpm@7.27.0node@v16.18.1

友情链接:

  1. React 官方文档
  2. 高德 自定义地图
  3. Mockjs 官方文档
  4. DataV 官方文档
  5. echarts 实例echarts API文档

二、文件目录介绍

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Project
├─.eslintrc.cjs ----------- // eslint 配置
├─.gitignore -------------- // git 控制文件
├─custom.d.ts ------------- // 自定义类型声明
├─index.html -------------- // 主页面
├─mock -------------------- // 模拟数据
├─package.json ------------ // 项目信息+依赖包
├─pnpm-lock.yaml ---------- // 锁定依赖包
├─README.md --------------- // 说明文档
├─src
│ ├─App.module.css
│ ├─App.tsx --------------- // App 入口
│ ├─assets ---------------- // 静态资源
│ ├─components
│ │ ├─AutoScale ----------- // 自动缩放 HOC
│ │ ├─index.ts
│ │ └─ScaleContainer ------ // 缩放容器 HOC
│ ├─hooks
│ │ └─useFullscreen.ts ---- // 控制全屏 Hooks
│ ├─index.css
│ ├─main.tsx -------------- // 主入口
│ ├─redux ----------------- // redux 相关
│ ├─services -------------- // 服务端相关配置文件
│ ├─utils ----------------- // 工具函数
│ ├─views ----------------- // 页面
│ └─vite-env.d.ts
├─tsconfig.json ----------- // ts 配置文件
├─tsconfig.node.json ------ // node ts 配置文件
└─vite.config.ts ---------- // vite 配置文件

三、详情介绍

启动项目

需要提前安装好 nodejspnpm,下载项目后在项目主目录下运行 pnpm install 拉取依赖包,使用命令 pnpm dev 启动项目。

数据请求模拟

项目采用 Mockjs 模拟数据方式,配置在 mock 文件夹中,Mockjs 使用方法请查阅 Mockjs文档,主入口文件 main.tsx 引入 mock 文件。

接口 API 请求地址写在 services/api.service.ts 中,由 @reduxjs/toolkit createAsyncThunk 创建异步 Thunk 发起请求。

页面通过 useDispatch 发起请求,useSelector 接收数据。

图表组件

图表组件主要使用了 ECharts 和 DataV 可视化框架来进行开发。图表配置文件在 views/components/*/options.ts 中,数据由各个组件请求后导入。ECharts 渲染函数统一封装在了 utils/chart.js 中。

样式编写

样式编写使用了 CSS in JS (JSS) ,使样式具有组件级别的作用域,避免了全局样式污染的问题。
使用示例:

  1. 将 css 文件名修改为 xxx.module.css
  2. 导入样式文件 import styles from ‘./xxx.module.css’
  3. 使用 styles.className
  4. 定义 ts 类型文件
    1
    2
    3
    4
    5
    // custom.d.ts
    declare module "*.css" {
    const css: { [key: string]: string }
    export default css
    }
  5. vscode 安装插件:typescript-plugin-css-modules
    • 作用:解析 css 文件,并生成 ts 对应的类型
    • 使用:在 tsconfig.json 配置 plugins 字段 [{“typescript-plugin-css-modules”}]
    • 在 项目根目录创建 .vscode 文件夹 创建 settings.json 文件
      1
      2
      3
      4
      5
      // settings.json
      {
      "typescript.tsdk": "node_modules/typescript/lib",
      "typescript.enablePromptUseWorkspaceTsdk": true
      }

屏幕适配

本项目借助 HOC 高阶组件包裹,将大屏限制在 1920x1080 尺寸。通过动态计算缩放比例,实时控制容器缩放大小,具体代码请参阅。components/AutoScalecomponents/ScaleContainer 组件。

在编写大屏代码时,样式无需转换,按照设计稿 1920x1080 1:1 编写即可。

四、全屏控制

自定义 Hook(高阶组件)useFullscreen,用于控制页面全屏显示的功能,具体代码请参阅 hooks/useFullscreen 自定义钩子。

五、其它

这个项目是个人的作品,难免会有问题和 BUG。如果您发现任何问题,欢迎提出反馈和建议。我会尽力去更新和修复,并持续学习前端知识。非常感谢您的支持和理解!我很乐意与您交流,共同进步。

GitHub 地址
GitHub 地址https://github.com/zhihuzeye/react-screen-demo.git

在使用 Antd Select 组件的时候,请求详情回显 显示了一个错误的 value 值,不显示 label。

图片

为什么

  • 后端给前端传了一个 1293435817355730946(19位) 大数值类型,前端通过 ‘’ + 、toString() 等方式进行类型转换,得到 1293435817355731000(精度丢失),Select 列表没有对应上 [类型和数值],所以绑定不上。

因为 JavaScript 中的数字类型 (Number) 有一定的精度限制。在JavaScript中,数字类型使用 IEEE 754 标准,采用 64位 浮点数表示。这种表示方式存在一些局限性:

  1. 整数的精确表示范围为-2^53 + 1 到 2^53 - 1,即 -9007199254740991 到 9007199254740991(16位) 。超出这个范围的整数将丢失精度。
  2. 浮点数的表示也有误差,无法精确表示某些十进制小数,比如0.1。

如何解决

  1. 与后端开发沟通,通过字符串传递
  2. 使用 ES2020 BigInt 类型
  3. 使用 bignumber.js、decimal.js 等第三方库解决

运行一个 Taro 的项目,安装完相关依赖后执行命令报错

执行步骤

  • yarn install
  • yarn run start
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
正在执行任务: yarn run start 

yarn run v1.22.19
$ npm run dev:h5

> renthouse-taro@1.0.0 dev:h5
> npm run build:h5 -- --watch


> renthouse-taro@1.0.0 build:h5
> taro build --type h5 --watch

👽 Taro v3.6.25

找不到插件依赖 "@tarojs/plugin-platform-h5",请先在项目中安装,项目路径:D:\xxx\xxx\renthouse-taro
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

原因

因为我之前安装过 Taro 最新版本的 cli , 和现有的 Taro 版本不兼容

1
2
3
4
taro --version
👽 Taro v3.6.25

3.6.25

解决方案

  1. npm uninstall -g @tarojs/cli # 卸载 Trao
  2. npm install -g @tarojs/cli@3.0.29 # 安装指定版本 Trao
  3. 也有可能 nodejs 版本过低和 taro/cli 不兼容,nvm 切换 16.x 以上版本试试

场景:小程序内嵌 微搭 H5 页面, 点击 H5 某块区域,跳转到小程序详情页

代码:

1
2
3
4
5
6
7
8
9
10
11
12
export default function ({ event, data }) {
const value = data?.target
try {
wx.miniProgram.navigateTo({
url: `/packageC/houseDetails/index?id=${value}`,
});
} catch (err) {
wx.navigateTo({
url: `/packageC/houseDetails/index?id=${value}`,
});
}
}

报错:事件响应失败:组件container8[tap事件 响应Id wwvcp1rff5h]:wx is not defined

图片

自建的 H5 判断 navigator.userAgent 是微信环境后可以 直接使用 wx.miniProgram.navigateTo Api , 微搭并不支持。

解决方法:
https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html

  1. 微搭应用编辑->应用设置->开发设置->加载外部资源(JS/CSS)
  2. https://res.wx.qq.com/open/js/jweixin-1.3.2.js 资源下载本地,放到公司 OSS 上

图片

当今,互联网公司在全球范围内发挥着日益重要的作用。它们不仅改变了我们的生活方式,还在商业领域产生了深远的影响。本文将探讨一家典型互联网公司的运作方式,深入了解其内部机制和关键流程。通过对互联网公司的运作进行剖析,我们可以更好地理解这些公司如何取得成功,并对未来发展趋势有所启示。

名词解释

项目角色 岗位职责(概述)
BDM 市场拓展经理 负责目标客户的拓展和挖掘、搞好客户关系
BM 商务经理 负责项目的投标、实施及方案解决的沟通
PM 产品经理 收集、分析用户需求、提需求、画原型
UE 视觉设计师 根据产品经理原型画设计稿
FE 前端开发 根据设计稿编写前端代码
RD 后端开发 设计数据库、对接三方 API、开发接口
CRD 移动端开发 ios、Android 移动端开发
QA 测试人员 根据产品需求,软件中的缺陷提 bug
阅读全文 »

最近接手了一个项目,该项目在用户体验上极度不友好,如:每次请求就显示 loading ,自定义 tabbar 可点击区域太小,组件间切换白屏等等问题。本着 “要改革、就不要怕” 的原则,便大刀阔斧的对项目代码进行一系列优化。

结果改着改着就出现了问题:

  • 分包 packageB 的路径能点击
  • packageA、packageC 里的路径不能点击
  • 手机能点击、模拟器不能点击
  • 模拟器能点击,手机不能点击

图片

阅读全文 »

登录 Disqus

图片

选择 在我的网站上安装 Disqus

图片

创建一个新站点

注意:Website Name 这个字段非常重要,后续需要在 _config.yml 中用到
点击 Create Site 按钮即可

图片

阅读全文 »
0%