当前位置: 首页 > news >正文

高端娱乐网站建设外贸网站seo优化

高端娱乐网站建设,外贸网站seo优化,温州网站建设最新报价,网站建设:化工文章目录 一、项目起航#xff1a;项目初始化与配置二、React 与 Hook 应用#xff1a;实现项目列表三、TS 应用#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook… 文章目录 一、项目起航项目初始化与配置二、React 与 Hook 应用实现项目列表三、TS 应用JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook路由与 URL 状态管理八、用户选择器与项目编辑功能九、深入React 状态管理与Redux机制十、用 react-query 获取数据管理缓存十一、看板页面及任务组页面开发十二、自动化测试1.简介2.传统单元测试3.自动化测试 hook4.自动化测试组件 学习内容来源React React Hook TS 最佳实践-慕课网 相对原教程我在学习开始时2023.03采用的是当前最新版本 项版本react react-dom^18.2.0react-router react-router-dom^6.11.2antd^4.24.8commitlint/cli commitlint/config-conventional^17.4.4eslint-config-prettier^8.6.0husky^8.0.3lint-staged^13.1.2prettier2.8.4json-server0.17.2craco-less^2.0.0craco/craco^7.1.0qs^6.11.0dayjs^1.11.7react-helmet^6.1.0types/react-helmet^6.1.6react-query^6.1.0welldone-software/why-did-you-render^7.0.1emotion/react emotion/styled^11.10.6 具体配置、操作和内容会有差异“坑”也会有所不同。。。 一、项目起航项目初始化与配置 一、项目起航项目初始化与配置 二、React 与 Hook 应用实现项目列表 二、React 与 Hook 应用实现项目列表 三、TS 应用JS神助攻 - 强类型 三、 TS 应用JS神助攻 - 强类型 四、JWT、用户认证与异步请求 四、 JWT、用户认证与异步请求(上) 四、 JWT、用户认证与异步请求(下) 五、CSS 其实很简单 - 用 CSS-in-JS 添加样式 五、CSS 其实很简单 - 用 CSS-in-JS 添加样式(上) 五、CSS 其实很简单 - 用 CSS-in-JS 添加样式(下) 六、用户体验优化 - 加载中和错误状态处理 六、用户体验优化 - 加载中和错误状态处理(上) 六、用户体验优化 - 加载中和错误状态处理(中) 六、用户体验优化 - 加载中和错误状态处理(下) 七、Hook路由与 URL 状态管理 七、Hook路由与 URL 状态管理(上) 七、Hook路由与 URL 状态管理(中) 七、Hook路由与 URL 状态管理(下) 八、用户选择器与项目编辑功能 八、用户选择器与项目编辑功能(上) 八、用户选择器与项目编辑功能(下) 九、深入React 状态管理与Redux机制 九、深入React 状态管理与Redux机制(一) 九、深入React 状态管理与Redux机制(二) 九、深入React 状态管理与Redux机制(三) 九、深入React 状态管理与Redux机制(四) 九、深入React 状态管理与Redux机制(五) 十、用 react-query 获取数据管理缓存 十、用 react-query 获取数据管理缓存上 十、用 react-query 获取数据管理缓存下 十一、看板页面及任务组页面开发 十一、看板页面及任务组页面开发一 十一、看板页面及任务组页面开发二 十一、看板页面及任务组页面开发三 十一、看板页面及任务组页面开发四 十一、看板页面及任务组页面开发五 十一、看板页面及任务组页面开发六 十二、自动化测试 1.简介 目的 防止出现“新代码破坏旧代码”的无限循环让开发过程不再战战兢兢。 分类 单元测试传统单元测试、组件测试、hook测试 集成测试模块级别 e2e测试end页面级别 2.传统单元测试 之前初始化项目的时候默认安装了几个相关依赖 testing-library/jest-dom: ^5.16.5, testing-library/react: ^13.4.0, testing-library/user-event: ^13.5.0,再补充几个 npm i testing-library/react-hooks msw -D # --force单元测试需要隔离环境因此需要使用 msw 做 mock 使用 接下来写一个单元测试 新建 src\__tests__\http.ts用来测试 src\utils\http.ts import { setupServer } from msw/node; import { rest } from msw; import { http } from utils/http;const apiUrl process.env.REACT_APP_API_URL;const server setupServer();// jest 是对react最友好的一个测试库 // beforeAll 代表执行所有的测试之前先来执行一下回调函数 beforeAll(() server.listen());// 每一个测试跑完以后都重置mock路由 afterEach(() server.resetHandlers());// 所有的测试跑完后关闭mock路由 afterAll(() server.close());test(http方法发送异步请求, async () {const endpoint test-endpoint;const mockResult { mockValue: mock };server.use(rest.get(${apiUrl}/${endpoint}, (req, res, ctx) res(ctx.json(mockResult))));const result await http(endpoint);expect(result).toEqual(mockResult); });test(http请求时会在header里带上token, async () {const token FAKE_TOKEN;const endpoint test-endpoint;const mockResult { mockValue: mock };let request: any;server.use(rest.get(${apiUrl}/${endpoint}, async (req, res, ctx) {request req;return res(ctx.json(mockResult));}));await http(endpoint, { token });expect(request.headers.get(Authorization)).toBe(Bearer ${token}); });执行 npm run test, 启动单元测试, 执行结果如下 PASS src/__tests__/http.ts (5.495 s)√ http方法发送异步请求 (57 ms)√ http请求时会在header里带上token (7 ms)Test Suites: 1 passed, 1 total Tests: 2 passed, 2 total Snapshots: 0 total Time: 7.61 s Ran all test suites related to changed files.Watch Usage: Press w to show more.3.自动化测试 hook 新建 src\__tests__\use-async.ts import { useAsync } from utils/use-async; import { act, renderHook } from testing-library/react-hooks;const defaultState: ReturnTypetypeof useAsync {stat: idle,data: null,error: null,isIdle: true,isLoading: false,isError: false,isSuccess: false,run: expect.any(Function),setData: expect.any(Function),setError: expect.any(Function),retry: expect.any(Function), };const loadingState: ReturnTypetypeof useAsync {...defaultState,stat: loading,isIdle: false,isLoading: true, };const successState: ReturnTypetypeof useAsync {...defaultState,stat: success,isIdle: false,isSuccess: true, };test(useAsync 可以异步处理, async () {let resolve: any, reject;const promise new Promise((res, rej) {resolve res;reject rej;});const { result } renderHook(() useAsync());expect(result.current).toEqual(defaultState);let p: Promiseany;act(() {p result.current.run(promise);});expect(result.current).toEqual(loadingState);const resolvedValue { mockedValue: resolved };await act(async () {resolve(resolvedValue);await p;});expect(result.current).toEqual({...successState,data: resolvedValue,}); });4.自动化测试组件 新建 src\__tests__\mark.tsx: import React from react; import { render, screen } from testing-library/react; import { Mark } from components/mark;test(Mark 组件正确高亮关键词, () {const name 物料管理;const keyword 管理;render(Mark name{name} keyword{keyword} /);expect(screen.getByText(keyword)).toBeInTheDocument();expect(screen.getByText(keyword)).toHaveStyle(color: #257AFD);expect(screen.getByText(物料)).not.toHaveStyle(color: #257AFD); });部分引用笔记还在草稿阶段敬请期待。。。
http://www.sczhlp.com/news/175080/

相关文章:

  • wordpress资源站模板网站设计计划
  • 青岛出版集团网站自媒体网络公司经营范围
  • 网站做pc苏州优化亚当
  • 网站制作步骤流程图怎么制作微信小程序商城
  • 做二手货的网站有哪些电子商务网站建设的可行性分析包括
  • 门户网站建设的背景手机网站管理工具
  • 网站商城与网站区别吗seo能从搜索引擎中获得更多的
  • 云安全挑战与AI时代防护策略
  • wordpress建站 客户端广州软件开发公司排行
  • 怎样做理财投资网站wordpress 分页制作
  • 营销网站建设818gx企业做网站的费用怎么入账
  • 餐饮网站设计seo服务包括哪些
  • 安达市建设局网站个人做网站花多少钱
  • 做网站 视频外链网页打不开被拦截了怎么办
  • 定南建设银行网站点深圳微信网站
  • 网站信息资源建设包括哪些建设电影网站
  • 找百度公司做网站怎么样化妆品网站建设思路
  • 如何软件网站优化公司怎么给网站做api
  • 网站图片类型自己做网站要不要租服务器
  • 嘉兴中小企业网站建设京东网站制作优点
  • html5网站图标西安企业网站排名优化工具
  • 手机网站建设行业分析wordpress 主题 网址导航
  • 安丘网站制作在工作室上班网站建设会好吗
  • 网站建设的好处一个域名做多个网站
  • 做好的网站怎么链接苏州建设工程公司
  • 鞍山专业做网站公司网站seo分析工具
  • 郴州网站建设专业现状报告男生十大好就业专业
  • 17网站一起做网店浙江内蒙古住房和建设厅网站
  • 找做课件的网站十大免费cad制图软件
  • 网站长尾关键词排名软件wordpress点击量最多的文章