vue3.0学习笔记(三)——计算属性、监听器、ref属性、组件通信

1. computed 函数

定义计算属性:

  • computed 函数,是用来定义计算属性的,计算属性不能修改。
  • 计算属性应该是只读的,特殊情况可以配置 get set
  • 核心步骤:
    • 导入  computed 函数
    • 执行函数 在回调参数中  return 基于响应式数据做计算的值 ,用 变量接收

1.1 基本使用:

1.2 高级用法(set和get方法)

总结:计算属性两种用法

  • 给 computed 传入函数,返回值就是计算属性的值
  • 给 computed 传入对象,get 获取计算属性的值,set 侦听设置计算属性改变。
  • get 获取值需要返回一个值,set 设置值需要接收设置的值。

2. watch函数

watch函数,是用来定义侦听器的

  • 作用: 侦听一个或者多个数据的变化,数据变化时执行回调函数
  • watch函数的第一个参数 响应式对象
  • 俩个额外参数:1. immediate(立即执行) 2. deep(深度侦听)
基础使用:
  • 导入watch函数
  • 执行watch函数传入要侦听的响应式数据(ref对象)和回调函数

2.1 侦听单个数据

  • 侦听ref定义的响应式数据

2.2 deep 深度侦听

  • 侦听 reactive 定义的响应式数据(复杂数据类型),deep 深度侦听
  • 默认机制:通过 watch 监听的 ref 对象默认是 浅层侦听的,直接修改嵌套的对象属性不会触发回调执行 ,需要开启 deep 选项

deep 深度侦听,默认 watch 进行的是浅层侦听,不加 deep: true 侦听不到。

原因:
        因为 watch 侦听的是 user 这个对象,对 user 内部的 name 属性值进行更改后,不会导致整个 user 的地址发生改变。所以侦听不到,只有把这个对象的地址完全改变才能侦听到。

2.3 侦听多个数据的变化

  • 同时侦听多个响应式数据的变化,不管哪个数据变化都需要执行回调

2.4 立即侦听

  • 在侦听器创建时立即触发回调, 响应式数据变化之后继续执行回调

2.5 精确侦听对象的某个属性

  • 在不开启 deep 的前提下,侦听属性 name 值的变化,只有 name 变化时才执行回调
  • 可以把第一个参数写成函数的写法,返回要监听的具体属性

3. ref属性

获取 DOM 或者组件实例可以使用 ref 属性,写法和 vue2.0 需要区分开

  • vue2.0 获取单个 DOM 或者组件

  • vue3.0 获取单个 DOM 或者组件

  • 获取 v-for 遍历的 DOM 或者组件

4. 组件通信

4.1 父传子与子传父

  • 父组件

  • 子组件

总结:

  • 父传子:在 setup 中使用 props 数据 setup(props){ // props就是父组件数据 }
  • 子传父:触发自定义事件的时候emit来自 setup(props,{emit}){ // emit 就是触发事件函数 }

4.2 依赖注入(provide与inject)

使用场景:有一个父组件,里头有子组件,有孙组件,有很多后代组件,共享父组件数据。

  • 根组件:

  • 子组件

  • 孙子组件

总结:

  • provide函数提供数据和函数给后代组件使用
  • inject函数给当前组件注入provide提供的数据和函数

5. mixins语法

官方话术:

  • 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。

5.1 全局混入:所有组件混入了这些逻辑代码

  • vue 2.0 写法
// 全局混入 全局mixin
// vue2.0 写法  Vue.mixin({})
app.mixin({methods: {say () {console.log(this.$el,'在mounted中调用say函数')}},mounted () {this.say()}
})
  • vue 3.0 写法

5.2 局部混入:通过mixins选项进行混入

假设两个组件内部需要使用相同的代码逻辑,可以先建一个js文件,封装重复的代码,并且导出该对象。

使用配置对象 mixins,以数组的形式接收导出的对象,模版直接使用导出对象里的方法。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/875187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencascade AIS_Line源码学习

前言 AIS_Line 是 OpenCASCADE 库中的一个类,用于表示和操作三维直线。它可以通过几何线(Geom_Line)或者两个几何点(Geom_Point)来初始化。 方法 1 //! 初始化直线 aLine。 Standard_EXPORT AIS_Line(const Handl…

JavaScript(14)——DOM

Web API 作用:就是使用JS去操作html和浏览器 分类:DOM(文档对象模型)、BOM(浏览器对象模型) DOM DOM是用来呈现以及与任意HTML或XML文档交互的API,简单来说就是操作网页的内容。 DOM树 将H…

计算机视觉与图像分类:技术原理、应用与发展前景

引言 随着科技的不断进步,计算机视觉逐渐成为了人工智能领域的重要分支之一。计算机视觉旨在让计算机具备“看懂”图像和视频的能力,从而理解和分析视觉信息。作为计算机视觉中的一个关键任务,图像分类涉及将输入的图像归类到预定义的类别中&…

学习记录day18——数据结构 算法

算法的相关概念 程序 数据结构 算法 算法是程序设计的灵魂,结构式程序设计的肉体 算法:计算机解决问题的方法护额步骤 算法的特性 1、确定性:算法中每一条语句都有确定的含义,不能模棱两可 2、有穷性:程序执行一…

35_YOLOX网络详解

1.1 简介 YOLOX是YOLO系列(You Only Look Once)目标检测模型的一个最新变种,由阿里云团队和旷视科技在2021年提出。YOLO系列以其快速、准确的目标检测能力而闻名,而YOLOX在此基础上进行了多方面的改进和优化,旨在提供…

机器学习数学基础(2)--最大似然函数

声明:本文章是根据网上资料,加上自己整理和理解而成,仅为记录自己学习的点点滴滴。可能有错误,欢迎大家指正。 在机器学习和统计学领域中,似然函数(Likelihood Function)是一个至关重要的概念。…

AIGC的神秘面纱——利用人工智能生成内容改变我们的生活

近年来,人工智能生成内容(AIGC)正在迅速改变我们与数字世界互动的方式。从自动写作到图像生成,AIGC正逐渐走进我们的日常生活。它不仅提高了效率,还为创意和商业活动带来了新的可能性。让我们一起来探索AIGC的世界&…

解读 IP 地址定位

你是否好奇众多平台推出的 IP 归属地功能是如何确定的位置?其实这些说起来并不难。接下来让我来给你们说一下其中的“奥秘”吧~ 一、IP 定位背后的原理 首先,从“IP 地址”开始。因为每个联网设备在接入网络时都会被分配一个独一无二的 IP 地址。根据这…

通信原理思科实验三:无线局域网实验

实验三 无线局域网实验 一:无线局域网基础服务集 实验步骤: 进入物理工作区,导航选择 城市家园; 选择设备 AP0,并分别选择Laptop0、Laptop1放在APO范围外区域 修改笔记本的网卡,从以太网卡切换到无线网卡WPC300N 切…

3.多租户调研1

https://gitee.com/xiaoqiangBUG/hello-ruoyi-cloud.git 1.mybatis plus 的插件 TenantLineInnerInterceptor 是 MyBatis Plus 框架中的一个拦截器,它用于实现多租户系统的数据隔离。在多租户应用中,不同的租户应该只能访问到自己的数据,而…

TCP网络socket编程(面向连接)

Tcp面向链接、面向字节流和文件的读写非常类似():客户端创建套接字主动建立连接,服务器监听套接字一直等待连接的到来,监听到一个,就创建一个新的套接字用于IO 服务器: 创建套接字&#xff1a…

【数据结构】单链表面试题(Java + 力扣 + 详解)

🎇🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 人生格言: 当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友…

动态代理更改Java方法的返回参数(可用于优化feign调用后R对象的统一处理)

动态代理更改Java方法的返回参数(可用于优化feign调用后R对象的统一处理) 需求原始解决方案优化后方案1.首先创建AfterInterface.java2.创建InvocationHandler处理代理方法3. 调用 实际运行场景拓展 需求 某些场景,调用别人的方法&#xff0…

Chapter 15 Python函数进阶

欢迎大家订阅【Python从入门到精通】专栏,一起探索Python的无限可能! 文章目录 前言一、函数多返回值二、函数的多种传参方式三、匿名函数 前言 在Python中,函数是组织代码、提高重用性与可读性的基本构建块。随着程序逻辑的复杂性增加&…

在 Windows 上安装 PostgreSQL

官网下载地址: https://www.enterprisedb.com/downloads/postgres-postgresql-downloadsWindows平台 官网直接提供exe安装包,没有手动安装的压缩包 postgresql-14.4-1-windows-x64.exe几个重要的安装选项 安装界面会指定服务程序和库两个路径&#xf…

压测实操--kafka-consumer压测方案

作者:九月 环境信息: 操作系统centos7.9,kafka版本为hdp集群中的2.0版本。 Consumer相关参数 使用Kafka自带的kafka-consumer-perf-test.sh脚本进行压测,该脚本参数为: thread:测试时的单机线程数&…

刷机维修进阶教程-----何谓“tee损坏” 指纹丢失 掉帧 传感器失效?详细修复步骤教程

TEE损坏指的是安卓机型中Key Attestation密钥认证所依赖的可信应用中的证书库被破坏了。然后拒绝为指纹密匙认证提供服务。加密的密匙由TEE负责管理。tee损坏只影响当前机型的密匙认证。不影响加密。通俗的理解。如果你机型维修或者刷机或者解锁或者格机 全檫除分区等等后有异常…

Elasticsearch集群配置-节点职责划分 Hot Warm 架构实践

前言 本文主要讲了ES在节点部署时可以考虑的节点职责划分,如果不考虑节点部署,那么所有节点都会身兼数职(master-eligible ,data,coordinate等),这对后期的维护拓展并不利,所以本文…

软件测试10 渗透性测试及验收测试

渗透性测试及验收测试 知识回顾 Web UI自动化测试 引入自动化测试需要满足的条件自动化测试流程简述自动化测试的关键技术Selenium页面元素定位方式 目标 了解安全测试的概念了解常见的安全漏洞了解安全测试流程及测试工具的使用理解验收测试的概念掌握Alpha测试和Beta测试…

【React 】开发环境搭建详细指南

文章目录 一、准备工作1. 安装 Node.js 和 npm2. 选择代码编辑器 二、创建 React 项目1. 使用 Create React App2. 手动配置 React 项目 三、集成开发工具1. ESLint 和 Prettier2. 使用 Git 进行版本控制 在现代前端开发中,React 是一个非常流行的框架,用…