返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue六大基本类型中的原始值响应式
  • 800
分享到

Vue六大基本类型中的原始值响应式

Vue原始值响应式Vue响应式 2023-01-04 12:01:30 800人浏览 独家记忆
摘要

目录ref响应丢失响应关系建立toRef 函数的实现自动脱 ref所谓原始值即针对六大基本类型的值的响应式 ref 由于 proxy 无法阻止原始值的修改,故此方法在这里不管用 我们

所谓原始值即针对六大基本类型的值的响应式

ref

由于 proxy 无法阻止原始值的修改,故此方法在这里不管用

我们可以创建一个包裹对象把原始值包起来;

然后在使用 Reactive 将该包裹对象变成响应式的即可

__v_isRef 属性是用来判断是否为 ref 包裹对象的判据

function ref(val) {
  // 包裹对象
  const wrapper = {
    value: val,
  };
  // 是否为ref的判据
  Object.defineProperty(wrapper, "__v_isRef", {
    value: true,
  });
  // 返回响应式数据
  return reactive(wrapper);
}

响应丢失

响应丢失问题:使用 reactive 创建响应式对象后,使用多参的形式 return,则实际上返回的是普通对象而非响应式对象!

export default {
  setup() {
    const obj = reactive({ a: 1, b: 2 });
    return {
      ...obj,
    };
  },
};

响应关系建立

obj 为原响应对象

newobj 内拥有与 obj 同名的所有属性值,且均一一编写访问器属性 value

value 执行后返回原响应对象中的值

这样一来,修改 obj 属性后,便会自动触发副作用函数执行!

const obj = reactive({ a: 1, b: 2 });
const newobj = {
  a: {
    get value() {
      return obj.a;
    },
  },
  b: {
    get value() {
      return obj.b;
    },
  },
};
console.log(newobj.a.value);

toRef 函数的实现

使用包裹 wrapper,内部加上 getter、setter 方法实现响应式

function toRef(obj, key) {
  const wrapper = {
    get value() {
      return obj[key];
    },
    set value(val) {
      obj[key] = val;
    },
  };
  Object.defineProperty(wrapper, "__v_isRef", {
    value: true,
  });
  return wrapper;
}

自动脱 ref

使用 proxy 代理

判断如果存在属性 __v_isRef ,表示其为 ref,则返回该 ref 的值;

如果只是普通对象,那原样返回即可

function proxyRefs(target) {
  return new Proxy(target, {
    get(target, key, receiver) {
      const value = Reflect.get(target, key, receiver);
      return value.__v_isRef ? value.value : value;
    },
  });
}

reactive 就是一个自动脱 ref 的例子,使用他的时候无需额外调用 value 即可获取值

到此这篇关于Vue六大基本类型中的原始值响应式的文章就介绍到这了,更多相关Vue原始值响应式内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue六大基本类型中的原始值响应式

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

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

猜你喜欢
  • Vue六大基本类型中的原始值响应式
    目录ref响应丢失响应关系建立toRef 函数的实现自动脱 ref所谓原始值即针对六大基本类型的值的响应式 ref 由于 proxy 无法阻止原始值的修改,故此方法在这里不管用 我们...
    99+
    2023-01-04
    Vue原始值响应式 Vue响应式
  • Vue中响应式原理的示例分析
    这篇文章主要介绍了Vue中响应式原理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Vue 嘴显著的特性之一便是响应式系统(reac...
    99+
    2024-04-02
  • Vue 中数据响应式的原理是什么
    Vue 中数据响应式的原理是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。改造数据我们先来尝试写一个函数,用于改造对象:为什么要先写这个函...
    99+
    2024-04-02
  • Vue 3中响应式的实现原理是什么
    本篇文章给大家分享的是有关Vue 3中响应式的实现原理是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1. 实现响应式响应基本类型变量首先...
    99+
    2024-04-02
  • C++ 基本数据类型中int、long等整数类型取值范围及原理分析
    目录基础知识C++ 整数类型及所占内存取值范围计算基本数据类型中int、long等整数类型取值范围基础知识 计算机中所有的整数都是以补吗的形式存储的。 正数的补码与原码相同,负数的补...
    99+
    2022-11-13
    C++ 基本数据类型 基本数据类型int 基本数据类型long 整数类型取值范围
  • JavaScript中基本类型值Undefined、Null、Boolean的示例分析
    这篇文章给大家分享的是有关JavaScript中基本类型值Undefined、Null、Boolean的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。ECMAScript...
    99+
    2024-04-02
  • vue中v-model和响应式的实现原理解析
    目录v-model响应式实现v-model 首先要了解v-model就是vue帮我们封装的语法糖,真正实现靠的还是:v-bind:绑定响应式数据 触发 input 事件 并传递数据 ...
    99+
    2024-04-02
  • 响应式WEB设计的9项基本原则分别是什么
    这篇文章将为大家详细讲解有关响应式WEB设计的9项基本原则分别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。响应式Web设计对于解决多类型屏幕问题来说...
    99+
    2024-04-02
  • vue数据响应式原理中数组的示例分析
    这篇文章主要介绍vue数据响应式原理中数组的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!src/core/observer/index.jssrc/core/observer/array.js arrayM...
    99+
    2023-06-29
  • Vue中计算属性、监听属性、数据的响应式更新和依赖收集基本原理是什么
    这篇文章主要介绍“Vue中计算属性、监听属性、数据的响应式更新和依赖收集基本原理是什么”,在日常操作中,相信很多人在Vue中计算属性、监听属性、数据的响应式更新和依赖收集基本原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作...
    99+
    2023-07-05
  • Java中的索引数据类型如何应用于响应式编程的实践中?
    随着互联网的快速发展,人们对数据的处理需求越来越高。在Java编程中,索引数据类型是非常重要的一种数据类型,它能够帮助我们更加高效地处理数据。同时,响应式编程也是近年来比较流行的一种编程模式,它可以在数据变化时自动更新UI,提高程序的响应...
    99+
    2023-09-09
    响应 索引 数据类型
  • Java中的索引数据类型如何支持响应式编程?
    在编程中,我们常常需要对一些数据进行索引操作,以便于快速查找和获取数据。在Java中,我们可以使用索引数据类型来实现这个功能。而响应式编程则是一种编程模型,通过对数据流进行观察和响应,可以有效地处理异步事件和数据流。本文将介绍Java中的...
    99+
    2023-09-09
    响应 索引 数据类型
  • 响应式编程如何改变Java中的索引数据类型?
    响应式编程是一种编程范式,它可以帮助我们更加优雅地处理异步事件流。在Java中,响应式编程已经成为了一种趋势,并且在Java 9中也加入了响应式流API。但是,响应式编程在处理索引数据类型方面,需要我们有一些新的思考方式。 Java中的索引...
    99+
    2023-09-09
    响应 索引 数据类型
  • Go语言中的路径数据类型响应方式有哪些?
    在Go语言中,路径数据类型是非常常见的数据类型之一。在处理文件路径、URL路径和路由路径等方面,路径数据类型都扮演着重要的角色。在本文中,我们将探讨Go语言中的路径数据类型及其响应方式。 字符串类型 在Go语言中,最基本的路径数据类型...
    99+
    2023-09-25
    响应 path 数据类型
  • Java中的数据类型:如何在响应式编程中使用异步?
    随着互联网技术的不断发展,响应式编程逐渐成为了一种主流的编程模型。在响应式编程中,异步编程是一项非常重要的技术,能够帮助我们更好地处理高并发的场景,提高程序的性能和稳定性。而在Java中,数据类型的选择也会影响到我们在响应式编程中使用异步...
    99+
    2023-10-21
    数据类型 响应 异步编程
  • Python中基本类型的连接组合和互相转换的方式
    本篇内容介绍了“Python中基本类型的连接组合和互相转换的方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!update方法非常的常用。1...
    99+
    2023-06-16
  • Java中的响应式编程如何利用索引数据类型的优势?
    响应式编程是一种编程范式,它将编程的重点放在数据流上,而不是在控制流上。在Java中,响应式编程可以通过使用RxJava库来实现。RxJava库是一个用于异步、基于事件的编程的Java库,它允许我们以响应式的方式处理数据流。 在RxJav...
    99+
    2023-09-09
    响应 索引 数据类型
  • Java中的响应式编程如何优化索引数据类型的使用?
    响应式编程是一种编写代码的方式,它强调代码的响应性和可组合性。在Java中,响应式编程使用RxJava库来实现。RxJava是一个基于观察者模式的异步事件处理库,它允许我们以响应式编程的方式处理异步事件。 在Java中,我们通常使用数组或...
    99+
    2023-09-09
    响应 索引 数据类型
  • 数据类型和异步编程:Java中响应式编程的最佳实践
    Java是一门广泛应用于企业级应用程序开发的编程语言。Java语言的强类型特性对于数据类型的定义和处理有着很好的支持。而异步编程技术则可以更好地处理大规模数据和复杂业务逻辑。本篇文章将介绍数据类型和异步编程在Java中的最佳实践,以帮助Ja...
    99+
    2023-10-21
    数据类型 响应 异步编程
  • Java中的响应式编程:如何利用异步方式处理不同的数据类型?
    响应式编程是一种处理异步和事件驱动程序的编程范式,它可以极大地提高程序的性能和可扩展性。Java中的响应式编程是一种基于流的编程方式,可以让我们更加高效地处理不同类型的数据。在本文中,我们将介绍Java中的响应式编程及其使用。 一、什么是...
    99+
    2023-10-21
    数据类型 响应 异步编程
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作