【vue3学习笔记(二)】(第141-143节)初识setup;ref函数_处理基本类型;ref函数_处理对象类型

尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通

本篇内容对应课程第141-143节

课程 P141节 《初识setup》笔记

1、setup是所有组合式API“表演的舞台”,组件中所用到的所有数据、方法、监视数据、生命周期钩子等都需要配置在setup中。

2、setup的两种返回值:

  • 返回一个对象,对象中的属性、方法,在模板中可以直接使用(常用)
  • 返回一个渲染函数,可自定义渲染内容(不常用)

在这里插入图片描述

2、测试在setup中配置数据与方法(注意此时未考虑数据的响应式),并使用setup返回一个对象的形式,将配置的数据与方法在对象中返回,模板中可正常访问:

在这里插入图片描述

在这里插入图片描述

测试返回渲染函数,要从vue中引入渲染函数h函数,且要把渲染函数 h 调用的返回值return出去,此时无论模板中写了什么内容,最终渲染的都是此渲染函数定义的内容:

在这里插入图片描述

精简代码:

在这里插入图片描述

在这里插入图片描述

增加两种返回方式的注释:

在这里插入图片描述

在vue3中测试使用vue2的 data 与 methods 选项配置数据与方法,在模板中尝试读取与调用,可以成功:

在这里插入图片描述

尝试在 vue2 的配置项中访问 vue3 的 setup 中定义的数据与方法,可以成功:

在这里插入图片描述

在这里插入图片描述

但我们一般不这样写代码,尽量不在 vue3 中使用 vue2 的配置项,即vue3 与 vue2 不要混用。

尝试在 vue3 的 setup 中访问 vue2 的配置项中定义的数据与方法,发现访问不到 vue2 的配置项中定义的数据与方法:

在这里插入图片描述

在这里插入图片描述

所以,vue2的配置,与vue3的配置,尽量不要混用。

总结笔记如下:

在这里插入图片描述
注意最后一点:setup不能是一个 async 函数,因为一个函数即使有自己的返回值,但一旦使用 async 修饰,其返回值将变成一个Promise,要想取到之前的返回值,需要使用 .then 的形式。如果使用async 修饰 setup,那么 setup 返回的对象就不再是一个单纯的对象了,而是一个被Promise包裹的对象,模板中就访问不到 setup 返回的对象中的数据了。

课程 P142节 《ref函数_处理基本类型》笔记

vue2中的ref是为了给元素或组件打标识,相当于id。vue3中的ref变成了一个函数。这不是说 vue2 中用来打标识的ref属性就作废了,在vue3中,仍然可以使用ref属性来为元素或组件打标识。只不过,它和ref函数是两回事。
在这里插入图片描述

直接定义数据,在方法中修改数据,发现数据已经被修改了,但视图根本不会变化:

在这里插入图片描述

使用 ref 定义数据,发现直接修改数据时视图仍然未改变。先将被 ref 加工后的 name 与 age 打印出来观察:

在这里插入图片描述

发现这两个基本类型的数据被加工成了一个对象,这个对象是 RefImpl 的实例对象。ref全称是 reference ,意为“引用”, impl 全称是 implement,意为“实现”。RefImpl 的全称是“引用实现的实例对象”,简称为“引用对象”。可以理解为原本定义的字符串类型的name值被ref函数加工成了一个引用对象,如果想取到最初定义的原始值,需要引用这个对象中的某个值。

在这里插入图片描述

在vue3中想实现响应式,那就要把数据丢给ref,让ref将数据生成一个引用对象:

在这里插入图片描述

打开这个 RefImpl 对象观察其属性,发现有一个value值,它和使用 Object.defineProperty 定义的对象属性一样,不会直接显示属性值,而是显示为三个点,鼠标点击才会显示值。打开这个 RefImpl 对象的原型,还可以看到这个value值的 getter 与 setter 函数。

RefImpl对象中的 getter 与 setter 放到了它的 proto 上,即原型对象上:

在这里插入图片描述

使用ref定义的数据,在js中读取时需要加 .value;而在模板中读取时,不需要 .value :

在这里插入图片描述

课程 P143节 《ref函数_处理对象类型》笔记

使用 ref 定义一个对象类型的数据:

在这里插入图片描述

猜想当通过 job.value.type 读取工作类型字段时,是不是需要再加上 .value ?

在这里插入图片描述

这样尝试的时候,发现报错了:

在这里插入图片描述

将 job.value 打印出来观察,发现它是一个Proxy对象,里面已经有了 type 和 salary 两个属性,可以直接读取:

在这里插入图片描述

在这里插入图片描述

得出结论:读取 job中的属性时,只需要在读取job时加 .value,后面再读取属性不需要再加 .value 了:

在这里插入图片描述

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

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

相关文章

JAVA的控制语句

控制语句 分为顺序、选择和循环 顺序结构 先执行a,再执行b 条件判断结构 如果......则....... 循环结构 如果.....则重复执行 条件判断结构(选择结构) if单分支结构 语法结构: if(布尔表达式){ 语句块 } 注&#xff…

【Java程序员福音】国外Java 程序员开发常用的工具(全)

Java是一门开源语言,所以可以选择的开发环境很多,你适合哪一个呢?整理了一些Java程序员开发常用的工具,需要的同学可以收藏。 1、免费开源Eclipse Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环…

安静:内向性格的竞争力 - 三余书屋 3ysw.net

精读文稿 这期我们介绍的这本书叫做《安静》,副标题是《内向性格的竞争力》。本书共有267页,我会用大约25分钟的时间为你讲述书中的精髓。内向性格具备什么样的竞争力?内向性格的人在人际交往和日常生活中似乎总是吃亏,因为他们不…

汉化必备工具 Poedit Pro 翻译编辑器

特色功能 简单易用的界面: Poedit的界面简洁直观,没有复杂的选项和设置。它专注于提供最基本的翻译编辑功能,使得用户能够快速上手并高效完成翻译工作。多种文件格式支持: Poedit支持多种常见的翻译文件格式,包括Gett…

JAVA WEB 能够实现整个文件夹的上传下载吗?

导入项目: 导入到Eclipse:导入项目 导入到IDEA:导入项目 springboot统一配置:springboot-配置 下载示例: https://gitee.com/xproer/up6-jsp-eclipse/tree/6.5.40/ 工程 NOSQL NOSQL示例不需要任何配置,可…

Jenkins升级中的小问题

文章目录 使用固定版本安装根据jenkins页面下载war包升级jenkins重启jenkins报错问题解决 K8s部署过程中的一些小问题 ##### Jenkins版本小插曲 ​ 在Jenkins环境进行插件安装时全部清一色飘红,发现是因为Jenkins版本过低导致,报错的位置可以找到更新je…

vue纯前端过滤嵌套数据,通过关键字搜索过滤嵌套数据

1.过滤效果: 2. cardList 数据源: [ { "id": 4, "createTime": "2024-03-28 02:47:18", "updateTime": "2024-03-28 02:47:18", "uniqueId": "…

python实战之基础篇(一)

1. 注释 # coding utf-8 # 该注释放到文件第一行, 这个注释告诉python解释器该文件的编码集是UTF-82. 导入语句有三种形式 import <模块名> from <模块名> import <代码元素> from <模块名> import <代码元素> as <代码元素别名>3. 获取…

FPGA时钟资源详解(1)——时钟Buffer的选择

FPGA时钟系列文章总览&#xff1a;FPGA原理与结构&#xff08;14&#xff09;——时钟资源https://ztzhang.blog.csdn.net/article/details/132307564 目录 一、概述 二、时钟Buffer的选择 2.1 BUFG 2.2 BUFR 和 BUFIO 2.2.1 源同步接口的支持 2.2.2 扩展时钟域…

unity双层滑动实现

实现功能&#xff1a; 当滑动列表中内容处于顶端的时候&#xff0c;向上滑动优先滑动整个滑动列表&#xff0c;当滑动列表移动到设置位置&#xff0c;即设定的最高处时&#xff0c;继续移动列表内内容。向下移动亦然&#xff0c;当内容处于滑动列表顶端时&#xff0c;移动整个滑…

【面试经典150 | 动态规划】零钱兑换

文章目录 Tag题目来源解题思路方法一&#xff1a;动态规划 写在最后 Tag 【动态规划】【数组】 题目来源 322. 零钱兑换 解题思路 方法一&#xff1a;动态规划 定义状态 dp[i] 表示凑成总金额的最少硬币个数。 状态转移 从小到大枚举要凑成的金额 i&#xff0c;如果当前…

康耐视visionpro-CogAcqFifoTool工具详细说明

CogAcqFifoTool操作说明&#xff1a; ① 打开工具栏&#xff0c;双击或点击鼠标拖拽 添加CogAcqFifoTool ②.从图片采集设备/图像采集卡列表里选择对应的相机&#xff0c;视频格式选择图像格式。 Mono表示黑白图像&#xff0c;RGB表示彩色相机。点击初始化取相初始化相机。 ③…