首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    我是这样在 React 中实践 TDD 编程的

    然而,在添加功能之前编写测试有助于编写更好的代码,因为你预先考虑了将使用的设计模式、体系结构和变量的名称。 我们正在构建一个用户管理仪表板。基本上,使用Redux,我们想执行CRUD操作。...用户可以: 创建用户 更新用户 删除用户 获取用户或用户列表 这个小项目中的用户将有四个属性: id\name\username\email 为了简单起见,我们不编写UI代码。...userSlice将有actions和reducer来执行CRUD操作。 slice的默认状态应该是一个空数组,毕竟,我们处理的是用户。...thunk是一个函数,它以store的dispatch方法作为参数,然后在API或副作用完成后使用它来dispatch同步操作。 首先,让我们为这个特性编写测试。...users", () => { beforeAll(() => { mockNetWorkResponse(); }); it("Shoudl be able to fetch

    3.3K30

    redux 文档到底说了什么(下)

    安装: $ yarn add @reduxjs/toolkit configureStore 最重要的 API 就是 configureStore 了: // store.ts const reducer...异步 之前我们用 redux-thunk 都是 action creator 返回函数的方式来写代码,redux-toolkit 提供一个 createAsyncThunk 直接可以创建 thunk(其实就是返回函数的...这里主要因为不 toString() 会报 TS 类型错误,官方的推荐写法是这样的: // todos/slice.ts const todosSlice = createSlice({ name:...等等的方法,这些 API 用起来就和用 Sequlize 这个库来操作数据库没什么区别,不足的地方是 payload 一定要按照它规定的格式,如 updateOne 的 payload 类型就得这样的...createReducer + createAction 其实 redux-toolkit 里面有挺多好的东西的,上面所说的 API 大概覆盖了 80% 了,剩下的还有 createReducer 和

    1.1K20

    【Web前端】Web API:构建Web应用核心

    什么是 API API(应用程序编程接口)是一组定义了软件组件之间如何交互的规则和协议。它允许一个程序调用另一个程序的功能,而不用了解其内部实现细节。...API 可以做什么 API 的功能非常广泛,主要包括数据获取、数据交互、功能调用等。以下是一些常见的 API 类型。 常见浏览器 API Fetch API:用于发起网络请求。...API 如何工作 基于对象的 API 现代 API 通常采用面向对象的设计,使得功能更加模块化、易于使用和扩展。通过将相关的功能组织到一个对象中,开发者可以方便地调用该对象的方法来实现特定的操作。...可以看到 ​​fetch​​ 函数如何使用不同的方法来调用相应的 API 端点。...DOM 事件外,开发者还可以创建和触发自定义事件,以便在应用程序内部传递信息。

    1.8K10

    AbortController的使用

    使用 AbortSignal 对象可以完成与 DOM 请求的通信 这个 api 简单来说就是可以提供一个能力给我们去提前终止一个 fetch 请求 一个终止 fetch 请求的 demo 如下: fetchButton.onclick...只需要调用controller.abort(),这些SomeObject的实例都能被终止掉 如果SomeObject内部也有调用像fetch之类的内部 api 只需要把这个signal继续传递,则...传递给内置 apifetch和检查signal状态执行一些操作 export class SomeObject { constructor(signal) { this.signal = signal...} } } react hook 中的异步调用 我们通常会在useEffect中进行一些异步 api 调用。...借助signal可以在下一次useEffect重新调用 api 的时候将前一次的调用终止 function FooComponent({ something }) { useEffect(() =>

    1.4K20

    你会在浏览器中打断点吗?我会!

    除了HTML Living Standard,WHATWG 还参与了一些其他规范的制定,包括Web Workers、Web Storage、Fetch API 等。...有条件的代码行 只在满足限定条件时,在指定地方触发断点 记录点 在不暂停代码运行的情况下向控制台输出日志 DOM 在更改或删除特定 DOM 节点或其子节点时触发断点 XHR 当 XHR URL 包含某个字符串模式时触发断点...根据函数参数个数不匹配暂停 只有当当前函数以错误的参数个数调用时才暂停:(arguments.callee.length) !...日志代码行断点 使用「日志代码行断点」(logpoints)可以在「不暂停执行且不用在代码中添加console.log()调用的情况下」,将消息输出到控制台。...打开,这样的话我们在断点触发后,也能查看框架内部的处理逻辑。

    2K10

    Web性能优化之Worker线程(下)

    考虑到上述情况,「注册」服务工作线程的一种非常常见的模式是「基于特性检测」,并在页面的 load 事件中操作。...onerror: 在关联的服务工作线程触发 ErrorEvent 错误事件时会调用指定的事件处理程序。...在「关联的」服务工作线程「内部」抛出错误时触发 也可以使用 navigator.serviceWorker.addEventListener('error', handler)处理 onmessage:...在服务工作线程触发 MessageEvent 事件时会调用指定的事件处理程序 在服务脚本「向父上下文发送消息」时触发 也可以使用 navigator.serviceWorker.addEventListener...❝在「同一页面」使用「同一 URL」 多次调用该方法会「返回相同的注册对象」:即该操作是「幂等」的 ❞ navigator.serviceWorker.register('.

    3K20

    如何取消 JavaScript 中的异步任务

    正如你在 DOM 规范中所看到的,AbortController 是用一种非常通用的方式描述的。所以你可以在任何类型的异步 API 中使用 —— 甚至是那些目前还不存在的 API。...目前只有 Fetch API 正式支持,但是你也可以在自己的代码中使用它!...然后调用 fetch() 并传递 signal 作为其选项之一(3)。要中止获取资源,你只需调用abortController.abort()(4)。...在 abort 事件侦听器内部,删除了滴答计时器(7)并拒绝了带有适当错误的promise (8; 根据规范(https://dom.spec.whatwg.org/#abortcontroller-api-integration...另外出现了一个保护子句,检查 abortSignal.aborted(2)的值。如果等于 true,那么 calculate() 函数将会拒绝带有适当错误的 promise,而无需执行任何其他操作。

    4.6K10

    自定义协议 | Electron 安全

    ,调用资源不都是 http(s)、file 这种,尤其像是加载插件之类的操作,内部用的也是类似于 vscode: 这种协议,这种就属于应用内注册自定义协议 今天的内容也是围绕着这两种情况进行讨论 公众号开启了留言功能...此方法只能在 app 的 ready 事件触发前调用,且只能调用一次 此方法用来对我们自定义协议(scheme)进行配置,可以注册为一个标准、安全、允许注册 ServiceWorker、支持获取API、...,例如 https 不包含 handler 协议处理程序,是一个协议处理函数 当Electron遇到匹配到scheme的URL请求时 handler会被调用。...(pathToFileURL(pathToServe).toString()) } else if (host === 'api') { return net.fetch('https...此方法检查当前可执行程序是否是协议(也就是URI scheme) 的默认处理程序。

    1.3K10

    【React】945- 你真的用对 useEffect 了吗?

    在这个 effect 中,我们设置了 document 的 title 属性,不过我们也可以执行数据获取或调用其他命令式的 API。 为什么在组件内部调用 useEffect?...,还会通过调用setData来更新本地的状态,这样会触发view的更新。...effect 可以使用它来读取 DOM 布局并同步触发重渲染 在浏览器执行绘制之前 useLayoutEffect 内部的更新计划将被同步刷新 尽可能使用标准的 useEffect 以避免阻塞视图更新...然后我们就可以使用符号(&)检查某个 tag 属性是否能触发一个特定的行为。如果结果是非零的,就表示可以。...以及这里是 React 如何检查行为触发的(详见源码): if ((effect.tag & unmountTag) !

    10.8K20

    一文入门react全家桶

    声明式编码 组件化编码 React Native 编写原生应用 高效(优秀的Diffing算法) 1.1.4.React高效的原因 使用虚拟(virtual)DOM, 不总是直接操作页面真实...渲染类组件标签的基本流程 1.React内部会创建组件实例对象 2.调用render()得到虚拟DOM, 并解析为真实DOM 3.插入到指定的页面元素内部 2.2....编码操作 1.内部读取某个属性值 this.props.name 2.对props中的属性值进行类型限制和必要性限制 第一种方式(React v15.5 开始已弃用): Person.propTypes...1)getState(): 得到state 2)dispatch(action): 分发action, 触发reducer调用, 产生新的state 3)subscribe(listener): 注册监听..., 当产生了新的state时, 自动调用 7.3. redux的核心API 7.3.1. createstore() 作用:创建包含指定reducer的store对象 7.3.2. store对象 1.

    4.4K20

    service worker 使用

    或者 127.0.0.1 也是 ok 的 service worker 是异步的,内部通过 Promise 实现, localStorage 是同步的,因此 service worker 内不许用使用...缓存和返回请求 每次任何被 service worker 控制的资源被请求到时,都会触发 fetch 事件,因此我们可以利用 fetch 事件对资源响应做一些拦截操作 this.addEventListener...如遇到该问题,可尝试这么做:在 webserver 上添加对该文件的过滤规则,不缓存或设置较短的有效期。...激活事件的处理函数中,主要操作是清理旧版本的 service worker 脚本中使用资源。...在线演示 源码 fetch (请求):当浏览器在当前指定的 scope 下发起请求时,会触发 fetch 事件,并得到传有 response 参数的回调函数,回调中就可以做各种代理缓存的事情了。

    1.9K32

    多端开发实战 | 基于 Taro 的智能商品推荐系统多端实战指南

    组件挂载时检查本地缓存,有效期内使用缓存数据,否则请求新数据 * * 返回值: * - 返回包含推荐商品卡片列表的滚动容器 */const GuessYouLike = () => { const...异步加载:使用 Redux Toolkit 的 createAsyncThunk 处理请求状态。性能优化:虚拟滚动技术解决长列表渲染问题(Taro VirtualList)。...创建函数,当该action被分发时触发effect * @property {Function} effect - 副作用处理函数,接收被监听action和监听器API对象 * @param {Object...} action - 被监听的action对象 * @param {Object} api - 监听器提供的工具集 * @param {Function} api.dispatch - Redux..., // 定义当监听到目标action时的处理逻辑 effect: (action, api) => { // 分发更新推荐商品列表的action api.dispatch(updateRecommendations

    62720

    016_Web安全实战指南:服务器端请求伪造(SSRF)漏洞原理、攻击技术与全面防御策略

    在你的项目中,你使用过哪些外部API调用或URL处理功能?你采取了哪些措施来确保这些功能的安全性? 2....SSRF漏洞通常发生在以下场景: URL参数处理:当应用程序接受用户提供的URL并发起请求时 外部API调用:当应用程序调用外部API,但未验证API端点时 文件处理:当应用程序从远程URL加载文件时...3.2 SSRF的触发机制 SSRF漏洞通常通过以下机制触发: 直接URL参数:应用程序直接使用用户提供的URL参数发起请求 重定向利用:攻击者利用应用程序允许URL重定向的特性,将请求重定向到恶意目标...场景2:外部API调用未验证端点 // 存在SSRF漏洞的PHP代码 function getExternalData($apiEndpoint) { // 危险操作:直接使用用户提供的API端点...监控与审计:记录和监控所有外部请求,设置异常行为告警 互动讨论: 在你的项目中,你使用过哪些外部API调用或URL处理功能?

    1K10

    目前5种最流行的发送HTTP请求的方法

    大多数较新的HTTP请求包在复杂的XMLHttpRequest API上提供简单的抽象。 Fetch Fetch是一个简化的、现代的本机Javascript API,用于发出HTTP请求。...fetch方法接受一个配置对象作为第二个参数,以方便操作HTTP字段,如头、内容类型、请求方法等。您可以在其官方文档中找到Fetch支持的配置选项的完整列表。...我们必须手动检查HTTP错误并处理它们。 与Internet Explorer不兼容,不过希望这不再重要了。 Axios Axios是用Javascript发出HTTP请求的最流行的第三方包之一。...在catch方法内部,我们可以使用一个错误来区分HTTP错误。响应检查,它存储HTTP错误代码。 为了使用Axios发送POST请求,我们使用专用的Axios ....通过支持请求超时、重试和监控进度等特性,解决了本机Fetch API中的一些限制。

    4.1K20
    领券