返回顶部
首页 > 资讯 > 精选 >effect返回runner单测怎么实现
  • 722
分享到

effect返回runner单测怎么实现

2023-07-04 18:07:40 722人浏览 薄情痞子
摘要

本篇内容主要讲解“effect返回runner单测怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“effect返回runner单测怎么实现”吧!一、 runner 单测首先介绍一下runn

本篇内容主要讲解“effect返回runner单测怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“effect返回runner单测怎么实现”吧!

一、 runner 单测

首先介绍一下runner的功能,分以下几点:

  • effect(fn)执行会返回一个runner函数;

  • 执行runner,相当于重新执行一遍effect里面传入的fn(原始依赖);

  • 最后runner的返回值就是fn的返回值。

至于runner的作用,可以看做是对外暴露ReactiveEffect实例的run方法。

  • 一方面是为了可以手动调用触发依赖;

  • 另一方面,也是为了和stop结合使用,来手动控制响应式的生效与失效;
    具体点就是:使用者可以手动执行runner()来控制副作用函数的生效 和 执行stop(runner)也就是runner.effect.stop()使之失效,具体stop的实现实现后面再说。

还是先来看一下单测吧,单测用例如下:

it('runner', function () {  // effect(fn) -> return runner -> runner() == fn() -> return  let foo = 10;  const runner = effect(() => {    foo++;    return 'foo';  });  expect(foo).toBe(11);  const r = runner();  expect(foo).toBe(12);  expect(r).toBe('foo');});

二、 核心逻辑实现

// + 为新增加的代码。

class ReactiveEffect {  private _fn: any;  constructor(fn) {    this._fn = fn;  }  run() {    activeEffect = this;    // + 返回fn的返回值    return this._fn();  }}export function effect(fn) {  const _effect = new ReactiveEffect(fn);  _effect.run();  // + 涉及到run()中this指向的问题,所以需要bind处理一下。  return _effect.run.bind(_effect);}

具体实现较为简单,上述代码中也有相应注释,这里就不再赘述了。
再次完整跑一遍effect单测,保证新功能的增加对以往实现功能不造成影响。

单测结果如下:

effect返回runner单测怎么实现

到此,相信大家对“effect返回runner单测怎么实现”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: effect返回runner单测怎么实现

本文链接: https://lsjlt.com/news/346711.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • effect返回runner单测怎么实现
    本篇内容主要讲解“effect返回runner单测怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“effect返回runner单测怎么实现”吧!一、 runner 单测首先介绍一下runn...
    99+
    2023-07-04
  • effect返回runner单测实现示例详解
    目录一、 runner 单测二、 核心逻辑实现一、 runner 单测 首先介绍一下runner的功能,分以下几点: effect(fn)执行会返回一个runner函数;执行run...
    99+
    2022-12-08
    effect返回runner单测 effect runner
  • Go语言单元测试怎么实现服务请求和接口返回
    这篇“Go语言单元测试怎么实现服务请求和接口返回”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Go语言单元测试怎么实现服务请...
    99+
    2023-07-02
  • springboot怎么实现返回视图
    本篇内容主要讲解“springboot怎么实现返回视图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springboot怎么实现返回视图”吧!springboot返回视图而不是stringpac...
    99+
    2023-06-29
  • react怎么实现返回顶部
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react怎么实现返回顶部知识准备:scrollTop代表被隐藏在内容区域上方的像素数,元素未滚动时,scrollTop为0,如果元素垂直滚动了,scro...
    99+
    2023-05-14
    React
  • php怎么实现返回上一层
    本文操作环境:Windows7系统、PHP7.1、Dell G3电脑。php怎么实现返回上一层?php实现返回上一页的功能的3种有效方法header(location:你的上一页的路径); // 注意这个函数前不能有输出 h...
    99+
    2019-05-06
    php
  • python返回迭代器怎么实现
    要实现一个返回迭代器的函数,可以使用生成器函数来实现。生成器函数是一种特殊的函数,可以在函数体中使用yield语句来产生值,每次调用...
    99+
    2023-09-28
    python
  • rabbitmq同步返回结果怎么实现
    要实现RabbitMQ的同步返回结果,可以使用RabbitMQ的RPC机制。RPC(Remote Procedure Call)是一...
    99+
    2024-02-29
    rabbitmq
  • Hibernate单元测试怎么实现
    这篇文章主要介绍“Hibernate单元测试怎么实现”,在日常操作中,相信很多人在Hibernate单元测试怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Hibernate单元测试怎么实现”的疑惑有所...
    99+
    2023-06-17
  • android单元测试怎么实现
    Android单元测试可以通过使用JUnit框架和Android Testing Support Library来实现。以下是实现A...
    99+
    2023-08-29
    android
  • python怎么实现接口测试返回数据为字典取值方式
    本文小编为大家详细介绍“python怎么实现接口测试返回数据为字典取值方式”,内容详细,步骤清晰,细节处理妥当,希望这篇“python怎么实现接口测试返回数据为字典取值方式”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-06-29
  • php怎么实现返回不刷新页面
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑php怎么实现返回不刷新页面?PHP实现返回上一页不刷新 和刷新的方法返回上一页不刷新:echo"<script>alert('已从错题本中...
    99+
    2018-11-23
    php
  • 怎么用CSS3实现返回功能按钮
    本篇内容介绍了“怎么用CSS3实现返回功能按钮”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在过去的年代,...
    99+
    2024-04-02
  • golang接口返回空数组怎么实现
    在Go语言中,可以使用nil来表示空数组。具体实现如下:```gopackage mainimport ("fmt")type My...
    99+
    2023-09-27
    golang
  • 怎么用JavaScript实现返回顶部按钮
    本篇内容介绍了“怎么用JavaScript实现返回顶部按钮”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!思路:首先先设计出其静态样式,这里主...
    99+
    2023-06-25
  • vue3调度器effect的scheduler功能怎么实现
    本文小编为大家详细介绍“vue3调度器effect的scheduler功能怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue3调度器effect的scheduler功能怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入...
    99+
    2023-07-04
  • Python3.10怎么接入ChatGPT实现逐句回答流式返回
    引言善于观察的朋友一定会敏锐地发现ChatGPT网页端是逐句给出问题答案的,同样,ChatGPT后台Api接口请求中,如果将Stream参数设置为True后,Api接口也可以实现和ChatGPT网页端一样的流式返回,进而更快地给到前端用户反...
    99+
    2023-05-19
    ChatGPT Python
  • SpringBoot+TestNG单元测试怎么实现
    这篇“SpringBoot+TestNG单元测试怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot+...
    99+
    2023-06-08
  • Node.js中怎么实现单元测试
    Node.js中怎么实现单元测试,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。为啥需要单元测试?所谓单元测试,就是对某个函数或者API进行正确性验证。来看个简单的例子add1....
    99+
    2023-06-17
  • Django中怎么实现单元测试
    在Django中,可以使用Django提供的TestCase类来编写单元测试。下面是一个示例: 创建一个测试类,并继承自djang...
    99+
    2024-03-06
    Django
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作