Reactive判断的API

Reactive判断API

      • [1. isProxy](#1. isProxy)
      • [2. isReactive](#2. isReactive)
      • [3. isReadonly](#3. isReadonly)
      • [4. toRaw](#4. toRaw)
      • [5. shallowReactive](#5. shallowReactive)
      • [6. shallowReadonly](#6. shallowReadonly)

1. isProxy

复制代码
    检查对象是否是由reactive或readonly创建的proxy.
javascript 复制代码
  	const info1 = reactive({
      name:'why',
       age:18
     })
	 const info2 = readonly(reactive({
      name:'why',
       age:18
     }))
    console.log(isProxy(info1),isProxy(info2));//true true

2. isReactive

复制代码
     检查对象是否由reactive创建的响应式代理:
     如果该代理是readonly创建的,但包裹了由reactive创建的另一个代理,它也会返回true
javascript 复制代码
  	const info1 = reactive({
      name:'why',
       age:18
     })
	 const info2 = readonly(reactive({
      name:'why',
       age:18
     }))
    console.log(isReactive(info1),isReactive(info2));//true true

3. isReadonly

复制代码
      检查对象是否由readonly创建的只读代理。
javascript 复制代码
  	const info1 = readonly({
      name:'why',
       age:18
     })
	 const info2 = readonly(reactive({
      name:'why',
       age:18
     }))
    console.log(isReadonly(info1),isReadonly(info2));//true true

4. toRaw

复制代码
      返回reactive或readonly代理的原始对象(不建议保留对原始对象的持久引用。谨慎使用(转成原始对象之后是要修改原始对象不推荐))
javascript 复制代码
      const info1 = readonly({
        name:'why',
        age:18
      })
      const info2 = reactive({
        name:'why',
        age:18
      })
     
      console.log(toRaw(info1),toRaw(info2)); //{name: 'why', age: 18} {name: 'why', age: 18}

5. shallowReactive

复制代码
      创建一个响应式代理,它跟踪其自身property的响应性,但不执行嵌套对象深层响应式转换(深层还是原生对象)
      注意点:修改后视图不刷新。修改carName的时候,不能把其他响应式数据也放到里面,不然会带着一起修改视图
javascript 复制代码
		<template>
		  <div>
		   <h2>
		    {{ info.car.name }} //视图不更新
		   </h2>
		   <button @click="chagneCarName">修改carName</button>
		  </div>
		</template>
		
      const info = shallowReactive({
        name:'why',
        age:18,
        car:{
          name:'xx'
        }
      })

      const chagneCarName = () => {
        info.car.name = 'yy'
      }

6. shallowReadonly

复制代码
      创建一个proxy,使其自身的property为只读,但不执行嵌套对象的深度只读转换(深层还是可读、可写)
javascript 复制代码
      const user = shallowReadonly({
        name: 'Alice',
        address: {
          street: '123 Main St',
          city: 'Wonderland',
        }
      })
    
       const changName = () => {
        user.name = '456 Elm St'; // 视图不会更新
      }
相关推荐
子兮曰29 分钟前
Bun v1.3.12 深度解析:新特性、性能优化与实战指南
前端·typescript·bun
2401_885885041 小时前
易语言彩信接口怎么调用?E语言Post实现多媒体数据批量下发
前端
a1117761 小时前
Three.js 的前端 WebGL 页面合集(日本 开源项目)
前端·javascript·webgl
Kk.08021 小时前
项目《基于Linux下的mybash命令解释器》(一)
前端·javascript·算法
MXN_小南学前端2 小时前
前端开发中 try...catch 到底怎么用?使用场景和最佳实践
javascript·vue.js
小李子呢02112 小时前
前端八股---闭包和作用域链
前端
IT_陈寒3 小时前
Redis的内存溢出坑把我整懵了,分享这个血泪教训
前端·人工智能·后端
m0_738120723 小时前
渗透测试基础ctfshow——Web应用安全与防护(五)
前端·网络·数据库·windows·python·sql·安全
Z_Wonderful3 小时前
基于 Vite 的 React+Vue 混部完整模板(含目录结构、依赖清单、启动脚本)
前端·vue.js·react.js
Rooting++3 小时前
腾讯无界微前端源码分析
前端