首页 > 其他分享 >Vue3 响应式工具函数

Vue3 响应式工具函数

时间:2023-08-29 18:23:40浏览次数:38  
标签:console log data 响应 readonly num Vue3 ref 函数

isRef()

检查某个值是否为 ref。

unref()

如果参数是 ref,则返回内部值,否则返回参数本身。这是 val = isRef(val) ? val.value : val 计算的一个语法糖

toRef()

可以将值、refs 或 getters 规范化为 refs (3.3+)。

也可以基于响应式对象上的一个属性,创建一个对应的 ref。这样创建的 ref 与其源属性保持同步:改变源属性的值将更新 ref 的值,反之亦然。

isProxy()

检查一个对象是否是由 reactive()readonly()shallowReactive() 或 shallowReadonly() 创建的代理。

isReactive()

检查一个对象是否是由 reactive() 或 shallowReactive() 创建的代理。

isReadonly()

检查传入的值是否为只读对象。只读对象的属性可以更改,但他们不能通过传入的对象直接赋值。

通过 readonly() 和 shallowReadonly() 创建的代理都是只读的,因为他们是没有 set 函数的 computed() ref。

 

<template>
	<span>
		<p>{{num}}</p>
	</span>
</template>

<script setup>
    import {
        ref, unref, toRef, isRef,
        reactive, isReactive,
        readonly, isReadonly,
        isProxy
    } from "vue"

    var num = ref(10)
    console.log(num) // ref
    console.log(unref(num)) // 10

    var data = reactive({num: 10})
    var num_toRef = toRef(data, "num") // 使用toRef()函数把reactive中的某一个属性转成ref数据
    console.log(num_toRef.value) // 10

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

    var data_readonly = readonly(data)
    console.log(isProxy(data)) // true
    console.log(isProxy(data_readonly)) // true

	console.log(isReactive(data)) // true
	console.log(isReactive(data_readonly)) // true

	console.log(isReadonly(data)) // false
	console.log(isReadonly(data_readonly)) // true

</script>

  

 

标签:console,log,data,响应,readonly,num,Vue3,ref,函数
From: https://www.cnblogs.com/ooo0/p/17665575.html

相关文章

  • golang 协程、延迟函数调用、以及恐慌和恢复
    此篇文章将介绍协程和延迟函数调用。协程和延迟函数调用是Go中比较独特的两个特性。恐慌和恢复也将在此篇文章中得到简单介绍。本文并非全面地对这些特性进行介绍,后面的其它文章会陆续补全本文的未介绍的内容。协程(goroutine)现代CPU一般含有多个核,并且一个核可能支持多线程。......
  • MySQL数据库:第十六章:sql高级函数
    我最常用的一个函数是FIND_IN_SET逗号分隔的list列表SELECTID,FID,APP_CODE,PARAM_VALUE,PARAM_TEXT,PARAM_SCHEAME,SHOWORDERFROMG_APP_DATA_CONSUME_PARAMWHEREFIND_IN_SET(FID,‘1,2,3,’)ORDERBYSHOWORDERDESC一、数学函数ABS(x)返回x的绝对值BIN(x)返回x的二......
  • MySQL数据库:第十五章:MySQL安装到最后一步未响应MySQL Server Instance Configuration
    MySQL安装到最后一步未响应第一个方法:打开C盘,并且显示隐藏文件,然后在C盘下就能找到一个文件夹叫“ProgamData”,打开它,删除里面的“mysql”文件夹,然后再重新安装mysql就可以了第二个方法:1.强退那个坑死人的未响应打√界面,也就是任务管理器强退,这个略,2.然后在本地硬盘找......
  • 值得收藏的前端开发必备工具类函数
     /***空值:[undefined,null,NaN,[],{}],注意非空:0,false;*@param{*}value*@returnsBoolean*/functionisEmpty(value){switch(Object.prototype.toString.call(value)){case'[objectUndefined]':returnvalue===vo......
  • vue3响应式数据重复
    记一次bug。。由于【甲方负责人】的表单是响应式的,然后直接添加到另一个响应式的数组里了,就会造成【更改表单内容,也会使数组里的值发生变化】解决方法1//添加到列表,做临时显示2constaddresponsible=()=>{3constnewResform={...resform};//添加数组之前创......
  • Swift - 高阶函数介绍(map、flatMap、filter、reduce)
     Swift-高阶函数介绍(map、flatMap、filter、reduce)https://blog.csdn.net/Alexander_Wei/article/details/78543410?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-78543410-blog-127072873.235%5Ev38%5Epc_r......
  • 【Vue】vue3 v-draggable 拖拽指令封装
    说明需求:实现一个拖拽指令,可在父元素区域任意拖拽元素,同时如果传入的值为father,则拖拽的时候以父元素为拖拽对象思路:1、设置需要拖拽的元素为absolute,其父元素为relative。2、鼠标按下(onmousedown)时记录目标元素当前的left和top值。3、鼠标移动(onmousemove)时计算每......
  • 【Vue】vue3 中 如何将el-table的表格数据下载为.xlsx格式文件
    安装依赖首先,你需要安装xlsx和file-saver这两个库。npminstallxlsxfile-saver--save有兴趣可以看看两个库的官方说明,直接看下面使用也没问题。xlsx官方介绍TheSheetJSCommunityEditionoffersbattle-testedopen-sourcesolutionsforextractingusefuldata......
  • Vue3 Refs模板
    Refs模板用来获取页面DOM元素或者组件,类似于Vue2.X中的$refs。Refs模板的使用方法如下。(1)在setup()中创建ref对象,其值为null。(2)为元素添加ref属性,其值为步骤(1)中创建的ref对象名。(3)完成页面渲染之后,获取DOM元素或者组件。 src\views\HomeView.vue<template><d......
  • c++ 删除 类的拷贝和赋值函数
      #pragmaonce#include"include/cef_app.h"classHttpSchemeFactory:publicCefSchemeHandlerFactory{public:HttpSchemeFactory()=default;//删除拷贝函数HttpSchemeFactory(constHttpSchemeFactory&)=delete;//删除赋值函数H......