Vue.js 3.0的Composition API中的三个创建响应式数据的函数reactive、toRefs、ref

本文详细介绍了Vue.js 3.0中用于创建响应式数据的三个核心函数:reactive、toRefs和ref。reactive将对象转化为响应式Proxy对象,toRefs则将响应式对象的属性转换为独立的响应式引用,以解决解构响应式对象失去响应性的问题。ref函数用于将基本类型数据转换为响应式对象。通过实例和代码演示,阐述了这三个函数的工作原理和使用场景。
摘要由CSDN通过智能技术生成

三个创建响应式数据的函数reactive、toRefs、ref

  • reactive:把对象转换成一个响应式对象,也就是一个Proxy对象。

  • toRefs:它可以把一个代理对象中的所有属性也都转换成响应式的对象,toRefs()在处理这个对象的属性的时候,类似于ref

  • ref: 把基本类型的数据转换成响应式对象。


先从一个问题看起, 响应式对象解构过后就不再是响应式的对象了,因为我们在创建响应式对象的时候使用reactive函数将数据封装成了Proxy对象
例如,以下的代码是不可以正常工作的:
【案例代码在线演示地址】

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document 01 for Vue 3.0 Composition API</title>
  </head>

  <body>
    <div id="app">
      x: {
   {
    x }} <br />
      y: {
   {
    y }}
    </div>
    <script type="module">
      // 当前重构抽离的函数可以放到一个模块中,将来在任何组件中都可以使用,你可以尝试使用相同的方式实现其他的逻辑
      function useMousePosition() {
   
        const position = reactive({
   
          x: 0,
          y: 0,
        });

        const update = (e) => {
   
          position.x = e.pageX;
          position.y = e.pageY;
        };

        onMounted(() => {
   
          window.addEventListener('mousemove', update);
        
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值