当前位置: 首页 > news >正文

Vue.js核心技术解析与uni-app跨平台实战开发学习笔记 第12章 Vue3.X新特性解析 12.12 响应式系统工具集的使用

Vue.js核心技术解析与uni-app跨平台实战开发学习笔记

第12章 Vue3.X新特性解析

文章目录

      • Vue.js核心技术解析与uni-app跨平台实战开发学习笔记
      • 第12章 Vue3.X新特性解析
        • 12.12 响应式系统工具集的使用
          • 12.12.1 unref()
          • 12.12.2 toRef()
          • 12.12.3 isRef()
          • 12.12.4 isProxy()
          • 12.12.5 isReactive()
          • 12.12.6 isReadonly()

12.12 响应式系统工具集的使用

Vue3提供了一组响应式工具,其中经常使用的有unref()、toRef()、isRef()、isProxy()、isReactive()和isReadonly()。

12.12.1 unref()

作用:如果unref()函数的参数是ref数据,则返回value值,如果不是ref数据,则返回参数本身。

使用步骤:

  1. 定义ref变量并赋值
  2. 直接打印ref变量,输出的是对象
  3. 使用unref()函数直接获取对象的value值

举个栗子:

<template>
  <div id="nav">
    <h1>unref()</h1>
  </div>
  <!-- <router-view/> -->
</template>

<script>
import {ref , unref} from 'vue'

export default {
    setup() {
      //定义ref变量
      var num = ref(10)

      //如果直接打印num,打印的是对象
      console.log(num)

      //使用unref打印出的是num对象的value值
      console.log(unref(num))

      return {
        num 
      }

    }
}
</script>

<style>

</style>

运行效果

在这里插入图片描述

12.12.2 toRef()

作用:把reactive对象中的一个属性创建成ref数据

使用步骤:

  1. 创建reactive代理对象
  2. 使用toRef()函数把reactive中的某一个属性转为ref数据
  3. 打印ref数据

举个栗子:

<template>
  <div id="nav">
    <h1>toRef()</h1>
  </div>
  <!-- <router-view/> -->
</template>

<script>
import {reactive , toRef} from 'vue'

export default {
    setup() {
      var data = reactive({num : 10})

      //toRef有两个参数,第一个参数reactive创建对象名
      //第二个参数是reactive对象中的某一个参数
      //numRef具有响应式和可传递性

      var numRef = toRef(data , "num")

      console.log(numRef.value)

      return {
        data , 
        numRef
      }

    }
}
</script>

<style>

</style>

在这里插入图片描述

12.12.3 isRef()

作用:检查一个值是否为ref对象

举个栗子

<template>
  <div id="nav">
    <h1>isRef()</h1>
  </div>
  <!-- <router-view/> -->
</template>

<script>
import {ref , isRef} from 'vue'

export default {
    setup() {
      var num = ref(10)

      console.log(isRef(num)) //true
      console.log(isRef(100)) //false

      return {
        num
      }

    }
}
</script>

<style>

</style>

在这里插入图片描述

12.12.4 isProxy()

作用:检查对象是否为代理对象。

当前,已学代理对象有两个:reactive()函数创建的和readonly()函数创建的。

举个栗子

<template>
  <div id="nav">
    <h1>isProxy()</h1>
  </div>
  <!-- <router-view/> -->
</template>

<script>
import {reactive , isReactive , readonly , isReadonly , isProxy} from 'vue'

export default {
    setup() {
      var data = reactive({num : 10})
      var newdata = readonly(data)

      //判断是否为代理对象
      console.log(isProxy(data))
      console.log(isProxy(newdata))

      return {
        data,
        newdata
      }

    }
}
</script>

<style>

</style>

在这里插入图片描述

12.12.5 isReactive()

作用:检查对象是否是reactive代理对象

举个栗子

在这里插入图片描述

12.12.6 isReadonly()

作用:检查对象是否是isReadonly代理对象

在这里插入图片描述

相关文章:

  • java服务器端开发-servlet:202、Servlet执行过程介绍:get请求与post请求、编码相关等
  • yara 分析器
  • 数据结构(三) -- 栈
  • 神策数据发布融媒行业版,驱动媒体深度融合转型
  • 解决安装GDAL库报错问题(Windos)
  • 数据逻辑校验机制
  • Linux关于jar包的基本操作
  • 用什么软件可以提高视频批量剪辑的效率
  • 搜索替换 csv 文件中的文本
  • DBCO-PEG-Casein/Ovalbumin/Lectins点击化学DBCO偶联络蛋白/卵清蛋白/凝集素
  • 【JetPack Compose】声明式UI 、组合、重组
  • jquary样式操作、动画
  • Apollo配置语法——Apollo配置List和Map以及组合应用——非常详细
  • ESP8266-Arduino编程实例-MAX30102脉搏和心率监测传感器驱动
  • Connor学Android - Bitmap的加载和缓存策略
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • Apache的80端口被占用以及访问时报错403
  • Docker下部署自己的LNMP工作环境
  • emacs初体验
  • iOS小技巧之UIImagePickerController实现头像选择
  • Java IO学习笔记一
  • Java新版本的开发已正式进入轨道,版本号18.3
  • mongodb--安装和初步使用教程
  • spring学习第二天
  • sublime配置文件
  • vagrant 添加本地 box 安装 laravel homestead
  • Webpack 4x 之路 ( 四 )
  • 阿里云购买磁盘后挂载
  • 初识 beanstalkd
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 深度学习入门:10门免费线上课程推荐
  • 网页视频流m3u8/ts视频下载
  • 小程序开发之路(一)
  • 带你开发类似Pokemon Go的AR游戏
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (译)2019年前端性能优化清单 — 下篇
  • (转)关于多人操作数据的处理策略
  • .java 9 找不到符号_java找不到符号
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET 指南:抽象化实现的基类
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • @Autowired标签与 @Resource标签 的区别
  • @javax.ws.rs Webservice注解
  • @WebService和@WebMethod注解的用法
  • []error LNK2001: unresolved external symbol _m
  • []sim300 GPRS数据收发程序
  • [2016.7.Test1] T1 三进制异或