码农知识堂 - 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学习笔记(尚硅谷)

  • 相关阅读:
    CentOs/Ubuntu 一行指令安装Docker
    Perl文件锁机制:守护你的数据安全
    智慧电力平台打造无人值守配电房、变电所
    【RocketMQ系列四】消息示例-简单消息的实现
    CVPR2020:Seeing Through Fog Without Seeing Fog
    hive报错 Too many bytes before newline: 2147483648
    PHP_EOL不起作用或者无效的原因
    数据结构—查找方法改进流程
    JavaScript高级复习上(59th)
    【广州华锐互动】城市水处理VR仿真实训平台
  • 原文地址:https://blog.csdn.net/youyouwuxin1234/article/details/132668473
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号