码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 557、Vue 3 学习笔记 -【常用Composition API(六)】 2023.09.05


    目录

      • 一、其它Composition API
        • 1. shallowReactive 与 shallowRef
        • 2. readonly 与 shallowReadonly
        • 3. toRaw 与 markRaw
        • 4、customRef
        • 5、provide 与 inject
        • 6. 响应式数据的判断
      • 二、参考链接

    一、其它Composition API

    1. shallowReactive 与 shallowRef

    shallowReactive:只处理对象最外层属性的响应式(浅响应式)。
    shallowRef:只处理基本数据类型的响应式,不进行对象的响应式处理。
    什么时候使用?

    如果有一个对象数据,结构比较深,但变化时只是外层属性变化 ===> shallowReactive
    如果有一个对象数据,后续功能不会修改该对象中的属性,而是生新的对象来替换 ===> shallowRef

      import { shallowReactive} from 'vue'
        
        setup(){
            let person = shallowReactive({ //只考虑第一层数据的响应式
                name:'张三',
                job:{
                    j1:'软件工程师'
                }
            })
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2. readonly 与 shallowReadonly

    • readonly:让一个响应式数据变为只读的(深只读)。
    • shallowReadonly:让一个响应式数据变为只读的(浅只读)。
    • 应用场景:不希望数据被修改时。

    3. toRaw 与 markRaw

    • toRaw:

    作用:将一个由reactive生成的响应式对象转为普通对象。
    使用场景:用于读取响应式对象对应的普通对象,对这个普通对象的所有操作,不会引起页面更新。

    • markRow:

    作用:标记一个对象,使其永远不会再成为响应式。
    应用场景:
    (1)有些值不应被设置为响应式,例如复杂的第三方类库等。
    (2)当渲染具有不可变数据源的大列表时,跳过响应式转换可以提高性能。

    4、customRef

    • 作用:创建一个自定义的ref,并对其依赖项跟踪和更新触发进行显式控制。
    • 官网示例: 创建一个防抖 ref,只在最近一次set调用后的一段固定间隔后再调用

    5、provide 与 inject

    • 作用:实现祖与后代组件间通信
    • 套路:父组件中有一个provide选项来提供数据,后代组件有一个inject选项来开始使用这些数据
    • 具体写法:
      祖组件中:
        setup(){
            let car = reactive({name:'奔驰', price:'40万'})
            provide('car', car)
        }
    
    • 1
    • 2
    • 3
    • 4

    孙组件(后代组件)中:

        setup(){
            const car = inject('car')
            return {
                car
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    6. 响应式数据的判断

    isRef:检查一个值是否为一个ref对象
    isReactive:检查一个对象是否是由reactive创建的响应式代理
    isReadonly:检查一个对象是否是由readonly创建的只读代理
    isProxy:检查一个对象是否是由reactive或者readonly方法创建的代理

    二、参考链接

    [01] Vue3学习笔记(尚硅谷)

  • 相关阅读:
    docker源码编译
    第28章 锁
    SCI论文从投稿到录用的完整处理流程-经验总结
    大数据开发之数据仓库
    openGauss数据库源码解析系列文章—— 密态等值查询技术详解(下)
    DDD实战(一):如何设计分层架构?
    黑客技术(网络安全)—高效自学
    Spring Boot Actuator - Spring Boot 应用监控
    使用docker安装redis
    Panda3d 外部硬件接口介绍
  • 原文地址:https://blog.csdn.net/youyouwuxin1234/article/details/132668473
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号