Vue3_2024_2天【Vue3组合式setup用法及响应式ref和reactive】

第一:浅谈 | 不可不知

1.vue3目录介绍(区别Vue2没有的)
在这里插入图片描述
在这里插入图片描述
vue3,默认使用ts语言,但是ts一开始无法识别某些文件,这里是系统默认配置;

2.vue2中的入口文件是main.js,而vue3这里的入口文件是与src同级目录的index.html文件!
在这里插入图片描述

  1. vue2中创建组件后,需要最外层包裹一个容器(div)可以称作“根”,在vue3中无需容器包裹(没有根包裹),可直接写元素。

4.(正如之前说过的,vue3兼容vue2代码,但尽量别混合写),

5 vue3的组合式api,也就是setup函数,特点如下:*可将属性定义、方法、计算属性、监听器都写在这一个函数内,将需要在template中要使用的,进行return出去,如:return {a,b,getInfon,deletePeo}【这一种了解许可(避免他人写你能看懂),是setup最原始写法,不推荐使用,后续使用基于–语法糖setup写法】
*setup函数内没有this,打印出来是undefined,当我们在vue2中写vue3的setup函数,此时若从setup函数内将一个定义的变量值,赋值给vue2的return的data里另一个变量,此时写法?思考。。。
结果 return(){
data{
name:this.peopleName,
}
};
没错,这里有疑问了,明明setup内部没有this,这里如何使用,其实也很好理解,
因为setup内部定义的变量最后返回出去了,template中能用,当然this也能拿出来,其次最重要的是vue2中最先发生的生命周期是beforeCreate,而vue3中的setup函数要优先它(先比它执行),然后一切就能说得通了!如图:
在这里插入图片描述

第二:详细实践说明

1 看图(细看)在这里插入图片描述在这里插入图片描述

2.完整代码:

<template>
  <div  class="contect-class">
    <div>
        <div>姓名:{{gname}}</div>
        <div>学生年龄:{{gage}}</div>
    </div>
    <buttom @click="addAge">学生年龄(+1){{readBook}}</buttom>
  </div>
  <div style="margin-top:20%;" class="contect-class">
    <div>
        <div >家长信息</div>
        <div>姓名:{{family.name}}</div>
        <div>与学生关系:{{family.connect}}</div>
        <div>联系电话:{{family.phone}}</div>
    </div>
    <buttom @click="changeParent">切换家长</buttom>
  </div>
</template>

<script>
import {ref} from 'vue';
import{reactive} from 'vue';
export default {
    /**
     * Vue2:data中定义属性自带响应式效果(背后的数据处理和数据劫持)
       Vue3:
       1.【ref:基本数据类型、引用数据类型(对象)】:ref包裹的,template中直接使用,若js层面使用必须.value谨记!
       2. 【reaction:引用数据类型】:修改对象时,单个直接点属性赋值即可,若整个对象修改,需使用assign避免响应式失效!
     */
    name:'Greg_02',
    title:'Vue3组合式API,setup函数内变量响应式',
    setup(){
        let gname='zzw';
        let gage=ref(19);
        let family=reactive({name:'钟家明',connect:'父子',phone:'18834567654'});

        console.log("【ref包裹基本数据类型】",gage,"【包裹对象类型】",family);
        function addAge(){
            gage.value+=1
            console.log("年龄+1",gage.value)
        }
        function changeParent(){
            //当family赋值,由reactive包裹时:
            //第一种修改对象内单个属性 // family.name='钟晓' 
            //第二种:修改整个对象,不能直接将新对象赋值给它(那样就完全覆盖是新的新对象,不会有响应式)
            let linObj={name:'钟晓',connect:'姐姐',phone:'18984567679'};
             // family=linObj;//失去响应式效果!!!
            family=Object.assign(family,linObj);//解决方法:使用assign将对象复制给faily,不会丢失响应式

            //当family赋值,由ref包裹时:
            //直接通过普通给就对象赋值方式,不影响原有响应式效果(你猜为什么?因为ref包裹的,在js层面需要.value,人家帮你做了响应式)
            //family.value={name:'钟晓',connect:'姐姐',phone:'18984567679'}
        }


        //1. 返回对象:template中直接使用、2.返回函数:则返回内容直接渲染到template上;
        return {gname,gage,addAge,family,changeParent}
    },
    

}
</script>

<style>
 .contect-class{
    background-color: #eeeeee;
    display:flex;justify-content: space-between;padding: 2%;
 }
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【CSS】CSS简介,CSS基础选择器详解

目录 css简介 css语法规范 css代码风格&#xff1a; css选择器的作用 css基础选择器 标签选择器 类选择器 类选择器---多类名 id选择器 id选择器和类选择器的区别&#xff1a; 通配符选择器 总结 ⭐css简介 CSS 是层叠样式表 ( Cascading Style Sheets ) 的简称,也…

二级医院云HIS系统,云HIS源码,支持分院HIS,集团HIS

云HIS具有可扩展、易共享、易协同、低成本、体验号、更便捷、易维护的优势&#xff0c;重新定义了数字化医院信息系统&#xff0c;实现数字化医院信息系统的转型升级。云 HIS 系统功能完善&#xff0c;涵盖临床各业务部门&#xff0c;采集、抽提、汇总、存贮、展现所有的临床诊…

【HTML】HTML基础系列文章小小总结,运用标签写出网页!

宇宙级声明&#xff01;这次只运用了一些基础标签&#xff0c;希望不要丑到大家~ 目录 效果预览&#xff1a;​编辑​编辑 点击百度百科 点击图片 点击下载 标签说明 源代码 效果预览&#xff1a; 点击百度百科 点击图片 点击下载 标签说明 标题 加粗文字 下划线 换行 分…

电商小程序10分类管理

目录 1 分类数据源2 搭建功能3 创建变量读取数据4 绑定数据总结 本篇我们介绍一下电商小程序的分类管理功能的开发&#xff0c;先看我们的原型图&#xff1a; 在首页我们是展示了四个分类的内容&#xff0c;采用上边是图标&#xff0c;下边是文字的形式。使用低代码开发&#…

Docker实战——网络通信

目录 一、Docker 容器网络通信的基本原理1、查看 Docker 容器网络&#xff08;1&#xff09;新建一个 Dockerfile文件&#xff0c;内容如下&#xff1a;&#xff08;2&#xff09;使用以下命令创建镜像&#xff08;3&#xff09;基于 debian 的镜像创建一个容器&#xff0c;并进…

每日一类:QLabel深入解析

QLabel是Qt中用于显示文本或图像的控件&#xff0c;属于Qt Widgets模块。它是展示静态内容的理想选择&#xff0c;支持富文本格式&#xff0c;使得文本可以包含不同的字体、颜色和链接。QLabel也可以用来显示图像&#xff0c;包括动态图像。此外&#xff0c;它还支持文本和图像…

源码解析篇 | YOLOv8官方源码项目目录结构解析

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。YOLOv8是一种目标检测算法&#xff0c;它是YOLO&#xff08;You Only Look Once&#xff09;系列算法的第8个版本。YOLOv8相比于之前的版本&#xff0c;在检测精度和速度上都有所提升&#xff0c;它在各种场景下都表现出色…

Acwing 每日一题 空调 差分 贪心

&#x1f468;‍&#x1f3eb; 空调 &#x1f468;‍&#x1f3eb; 参考题解 import java.util.Scanner;public class Main {static int N (int) 1e5 10;static int[] a new int[N];static int n;public static void main(String[] args){Scanner sc new Scanner(System.…

使用GPTQ进行4位LLM量化

使用GPTQ进行4位LLM量化 最佳脑量化GPTQ算法步骤1:任意顺序洞察步骤2:延迟批量更新第三步:乔尔斯基重塑 用AutoGPTQ量化LLM结论References 权重量化的最新进展使我们能够在消费级硬件上运行大量大型语言模型&#xff0c;例如在RTX 3090 GPU上运行LLaMA-30B模型。这要归功于性能…

鸿蒙系统的开发与学习:一、安装工具与处理报错

前言&#xff1a; 鸿蒙系统的学习与记录。 1 、使用开发工具&#xff1a;deveco-studio 1&#xff09;这个是工具的安装 2&#xff09;这个是工具包&#xff0c;里面包含了 obpm&#xff0c;如果你装不上这个&#xff0c;可以使用工具包内部的 2、安装 官方安装教程&#xff…

全国青少年软件编程(Python)等级考试试卷(一级) 测试卷2021年12月

第 1 题 【 单选题 】 下面程序的运行结果是什么&#xff1f;&#xff08; &#xff09; a10 b5 ca*b print(c) A :10 B :15 C :50 D :5 正确答案:C 试题解析: 第 2 题 【 单选题 】 与a>b and b>c等价的是&#xff1f;&#xff08; &#xff09; A…

leedcode刷题--day7(字符串)

23 文章讲解 力扣地址 C class Solution { public:void reverseString(vector<char>& s) {int left 0;int right s.size() - 1; // right 应该初始化为 s.size() - 1while (left < right) {swap(s[left], s[right]); // 直接交换 s[left] 和 s[right] 的值lef…

【Vulnhub通关】Tr0ll: 1

准备工作 靶机基本信息 靶机名称&#xff1a;Tr0ll: 1 操作系统&#xff1a;Linux 网络连接方式&#xff1a;NAT 虚拟机软件&#xff1a;VMware Workstation 渗透测试目标&#xff1a;获取靶机root权限并读取Flag文件 下载地址&#xff1a;Tr0ll: 1 ~ VulnHub 环境配置 点击本…

SparkStreaming在实时处理的两个场景示例

简介 Spark Streaming是Apache Spark生态系统中的一个组件&#xff0c;用于实时流式数据处理。它提供了类似于Spark的API&#xff0c;使开发者可以使用相似的编程模型来处理实时数据流。 Spark Streaming的工作原理是将连续的数据流划分成小的批次&#xff0c;并将每个批次作…

数通HCIE和云计算HCIE哪个好一点?

数通是网络的基础知识&#xff0c;也是入门人员必学的方向&#xff0c;相对也会简单些&#xff0c;学习数通&#xff0c;可以很好的学习其他的方向。数通的就业范围也比较广&#xff0c;运营商、企业、政府还是互联网公司&#xff0c;都需要大量的数通工程师来搭建和维护网络&a…

科技企业如何做到FTP数据安全保护

在数字化浪潮的推动下&#xff0c;科技企业的数据已成为推动创新、提升效率、增强竞争力的核心资源。数据的重要性不言而喻&#xff0c;它不仅包含了客户信息、市场分析、产品设计等关键信息&#xff0c;更是企业宝贵的资产。然而&#xff0c;随着数据量的激增&#xff0c;数据…

51单片机-(定时/计数器)

51单片机-&#xff08;定时/计数器&#xff09; 了解CPU时序、特殊功能寄存器和定时/计数器工作原理&#xff0c;以定时器0实现每次间隔一秒亮灯一秒的实验为例理解定时/计数器的编程实现。 1.CPU时序 1.1.四个周期 振荡周期&#xff1a;为单片机提供定时信号的振荡源的周期…

【论文笔记】Mamba:挑战Transformer地位的新架构

Mamba Mamba: Linear-Time Sequence Modeling with Selective State Spaces 代码地址 摘要 背景 基础模型&#xff0c;它现在驱动着深度学习中大多数令人振奋的应用&#xff0c;几乎都是基于Transformer架构及其核心注意力模块。 存在的问题 许多subquadratic-time架构如…

langchain学习笔记(十)

Bind runtime args | &#x1f99c;️&#x1f517; Langchain 1、有时&#xff0c;我们希望使用常量参数调用Runnable序列中的Runnable&#xff0c;这些参数不是序列中前一个Runnable的输出的一部分&#xff0c;也不是用户的输入&#xff0c;这时可以用Runnable.bind() from …

【学习心得】浏览器开发者工具中出现的VM开头的JS文件是什么?

一、现象描述 在Chrome的开发者工具中&#xff0c;你可能会看到一些以“VM”开头的JavaScript文件&#xff08;如“VM111.js”&#xff09;。 二、VM文件到底是什么&#xff1f; “VM”表示的是Virtual Machine&#xff08;虚拟机&#xff09;&#xff0c;这些文件通常表示由浏…