react依赖讲解

依赖文件

dependencies:{
    "@date-io/date-fns":"",//日期格式化工具
    "@material-ui/core":"",//ui组件核心包
    "@material-ui/icons":"",//ui图标
    "@material-ui/pickers":"",//ui日期组件
    "@reduxjs/toolkit":"",//状态管理
    "@testing-library/jest-dom":"",//测试工具库
    "@testing-library/react":"",//测试相关,提高测试效率
    "@testing-library/user-event":"",//测试时,模拟事件动作的
    "axios":"",//异步请求的
    "clsx":"",//组件分配类名,与样式相关
    "date-fns":"",//日期组件
    "date-fns-tz":"",//日期,时间控件
    "decimal.js":"",//js数值计算相关
    "event-source-polyfill":"",//协议请求相关
    "file-saver":"",//文件保存相关
    "final-form":"",//React Final Form是一个高性能的基于订阅的表单状态管理工具,用于Final Form的精简React包装器,是使用Observer模式的基于订阅的表单状态管理库。当表单状态更改时,React Final Form能重新渲染仅需要更新的组件
    "final-form-calculate":"",//配合final-form使用,定义和描述表单字段以及其更新方式。
    "final-form-set-field-data":"",//表单字段设置数据相关
    "i18next":"",//国际化
    "jest-junit":"",//可以创建jest xml的生成器
    "jest-sonar":"",// a sonar reporter for jest
    "js-big-decimal":"",//较大数据,高精度计算插件
    "loadsh":"",//是一个一致性、模块化、高性能的 JavaScript 实用工具库
    "material-table":"",//A simple and powerful Datatable for React based on Material-UI Table with some additional features
    "memoize-one":"",//A memoization library that only caches the result of the most recent arguments.
    "miragejs":"",//Mirage 是一个可让前端开发人员模拟后端 API 的 JavaScript 库
    "mocker-data-generator":"",//数据库模拟数据生成
    "mocksse":"",//mock接口测试相关
    "moment":"",//JavaScript 日期处理类库
    "moment-timezone":"",//JavaScript 日期处理类库
    "nanoid":"",//nanoid库和uuid库一样都可以生成uuid,但是nanoid相比uuid要更轻量级
    "prop-types":"",//Runtime type checking for React props and similar objects
    "qs":"",//一个查询字符串解析和字符串化库
    "rc-pagination":"",//pagination ui component for react
    "react":"",
    "react-app-polyfill":"",//浏览器兼容配置相关
    "react-beautiful-dnd":"",//组件拖拽
    "react-csv":"",//从给定数据生成 CSV 文件。此数据可以是数组数组、文字对象数组或字符串
    "react-day-picker":"",//日期组件
    "react-dom":"",
    "react-dropzone":"",//简单的 React 钩子为文件创建一个符合 HTML5 的拖放区。
    "react-final-form":"",//React Final Form 是 Final Form 的一个瘦 React 包装器,它是一个基于订阅的表单状态管理库,使用观察者模式,因此只有需要更新的组件会随着表单状态的变化而重新渲染。
    "react-helmet":"",//React Helmet是一个HTML文档head管理工具,管理对文档头的所有更改
    "react-i18next":"",//国际化相关
    "react-lottie":"",//将动画添加到react中
    "react-placeholder":"",//React占位符 一个React组件,可以在内容加载时轻松地用漂亮的占位符复制页面
    "react-redux":"",//官方绑定库,使得react可以从store中读取状态值
    "react-router-dom":"",//您访问路由器的状态并从组件内部执行导航
    "react-scripts":"",//react命令相关的插件
    "react-textarea-autosize":"",//textarea 组件的插入式替换,它会随着内容的变化自动调整 textarea 的大小
    "react-toastify":"",//提示框相关的
    "recharts":"",//react构建D3图标相关
    "redux":"",
    "url-parse":"",//从 Node.js 中了解的 url 接口和最新浏览器中可用的新 URL 接口
    "uuid":"",//uuid生成器
    "web-vitals":""//提高和检测页面加载性能相关的
},
devDependencies:{
    "@testing-library/react-hooks":"",//简单而完整的 React 挂钩测试实用程序,鼓励良好的测试实践
    "cross-env":"",//通过js在平台设置不同的环境变量的工具
    "env-cmd":"",//一个简单的节点程序,用于使用 env 文件中的环境执行命令
    "eslint":"",//前端编程规范
    "eslint-config-airbnb":"",//airbnb编码规则
    "eslint-config-prettier":"",//关闭所有不必要或可能与 [Prettier] 冲突的规则.请注意,此配置仅关闭规则,因此仅将其与其他配置一起使用才有意义.
    "eslint-plugin-import":"",//该插件旨在支持ES2015 +(ES6 +)导入/导出语法的检查,并防止文件路径和导入名称拼写错误的问题
    "eslint-plugin-jsx-a11y":"",
    "eslint-plugin-prettier":"",//将 Prettier 作为 ESLint 规则运行,并将差异报告为单个 ESLint 问题
    "eslint-plugin-react":"",//为 eslint 反应特定的 linting 规则
    "eslint-plugin-react-hooks":"",//这个 ESLint 插件强制执行 Hooks 规则
    "http-proxy-middleware":"",//前端跨域调试工具
    "jest-canvas-mock":"",//模拟测试画布
    "jest-sonar-reporter":"",
    "prettier":"",//是一个可配置化的代码美化(格式化)工具,往往用于统一项目中的代码风格
    "run-script-os":"",//您将能够在 npm 脚本中使用特定于操作系统的操作
}

@testing-library/jest-dom

背景:

您想使用 jest 编写测试来断言关于 DOM 状态的各种事情。 作为该目标的一部分,您希望避免这样做时出现的所有重复模式。 检查一个元素的属性、它的文本内容、它的 css 类,你可以命名它

解决方案 @testing-library/jest-dom

@testing-library/jest-dom 库提供了一组自定义的 jest 匹配器,您可以使用它们来扩展 jest。 这些将使您的测试更具声明性,更易于阅读和维护

api

  • toBeDisabled
  • toBeEnabled
  • toBeEmptyDOMElement
  • toBeInTheDocument
  • toBeInvalid
  • toBeRequired
  • toBeValid
  • toBeVisible
  • toContainElement
  • toContainHTML
  • toHaveAccessibleDescription
  • toHaveAccessibleName
  • toHaveAttribute
  • toHaveClass
  • toHaveFocus
  • toHaveFormValues
  • toHaveStyle
  • toHaveTextContent
  • toHaveValue
  • toHaveDisplayValue
  • toBeChecked
  • toBePartiallyChecked
  • toHaveErrorMessage

@testing-library/react

简单而完整的 React DOM 测试实用程序

背景

你想为你的 React 组件编写可维护的测试。 作为此目标的一部分,您希望您的测试避免包含组件的实现细节,而是专注于让您的测试为您提供预期的信心。 作为其中的一部分,您希望您的测试库从长远来看是可维护的,因此组件的重构(对实现的更改但不是功能的更改)不会破坏您的测试并减慢您和您的团队的速度

解决方案 @testing-library/react

React 测试库是一个用于测试 React 组件的非常轻量级的解决方案。 它在 react-dom 和 react-dom/test-utils 之上提供了轻量级的实用功能,以鼓励更好的测试实践。 其主要指导原则是 :
你的测试与你的软件使用方式越相似,它们能给你的信心就越大。

安装

安装到devDependencies下:

npm install --save-dev @testing-library/react

这个库需要依赖安装 react 和 react-dom
这个库可以被enzyme替换。

posted @ 2022-01-17 23:43  依梦维马  阅读(368)  评论(0)    收藏  举报