首页 > 其他分享 >Vue3 01 -- 初识Vue3

Vue3 01 -- 初识Vue3

时间:2023-05-11 15:35:34浏览次数:37  
标签:01 函数 -- 绑定 watch 参数 Vue3 组件 ref

Vue3 组合式API

 

在vue2的版本里,数据和函数是分开维护的,并且调用时还要用到mount或者Create。

但是在vue3的版本里,经过setup的语法糖,能够实现集中式维护,一个功能写的代码能放在一起,且代码量更少了。

 

使用create-vue创建项目

  1. 在工作目录下,用命令行运行npm init vue@latest
  2. 按照指示一步步建立。
  3. 成功建立后,在项目目录下运行npm install 下载环境,然后运行。

 项目目录和关键文件

项目配置文件变成了基于vite的配置

核心依赖还是package.json

入口文件还是main.js

根组件还是app.vue 但是vue格式发生了变化

首先script到了最上面,template到了中间。

template不再需要根div元素

script支持vue3最大的特色,组合式api。

 

Set up

 

setup 可以写在vue2的形式里,发生在beforeCreate函数之前,组件挂载完毕之后。

 

 默认的写法,在定义完数据和函数之后,需要将数据return。

使用的时候和vue2一样,直接绑定click事件,用{{}}绑定数据。

 

 用setup语法糖,这样只需要定义数据和方法就行,return工作已经完成了。

经过语法糖的封装能更简单的使用组合式api。

 

ref()

 ref简单来说就是生成一个响应式对象。

用这些函数都要有一个通用的过程,1 导入 2 执行接收

 

reactive()

 

 用法与ref类似,但是只能传入类型为对象的初始值。

 

ref和reactive异同点:

reactive和ref函数都是通过函数调用的方式生成响应数据。

reactive不能处理简单类型的数据

ref参数类型支持更好但是必须通过.value访问修改

ref函数的内部实现依赖于reactive

更推荐使用ref函数,更加灵活。

 

computed 计算属性函数

 通用的步骤还是没少,1 、导入 2、用变量接收

用变量接收 computed函数,里面参数是一个回调函数,return的是基于响应式数据做计算的值。

 

watch函数

 

watch的作用是侦听一个或者多个数据的变化,数据变化时执行回调函数

 通用的步骤一样 1 导入 2 执行函数

watch函数的基础用法,有2个参数:

1. 侦听变化的数据

2. 回调函数,回调函数里有2个参数,前者是更新后的值,后者是更新前的值

 

侦听多个数据和单个数据类似,

只是参数里面装的是数组。

 

 

 

watch函数有两个额外的参数:

1. immediate

2. deep

immediate通常用来给出相应的搜索提示,侦听器刚创建的时候就会调用。

watch监听的ref对象是浅层的,如果是对象里的某个值发生改变,则不会调用watch函数,此时要加deep参数。

 

但是deep函数消耗的资源很多,一般不推荐这样写,因为对象侦听通常是针对对象的某个属性,所以可以用下面的进阶写法。

精确侦听对象的某个属性

 这里的watch函数,

第一个参数的位置,从某个需要侦听的变量,修改成了一个回调函数,回调函数需要指明需要侦听的对象的某个属性。

第二个参数不变。

 

作为watch函数的第一个参数,ref对象不需要添加.value。

不开启deep,需要在第一个参数写成函数的写法,返回需要监听的具体属性。

 

生命周期函数

这里的生命周期函数 vue3与vue2相比,绝大多数前面只需要加一个on就行了。

但是beforeCreate和created的API被组合成了setup。

 

 

使用起来很简单,1 导入 2 调函数。

 

 

可以执行多次,使用的业务场景就是原来的函数太复杂,在不动代码的情况下加一些业务逻辑,可以直接再起一个函数。

父子通信

父组件要传变量值给子组件的时候,

父组件要在子组件内绑定属性,这一点和vue2一样。

子组件通过defineProps函数接收,这个叫“编译器宏”之后会讲到。

接受的时候名字要对应,数据类型也要指明。

 

子传父的做法是绑定事件,通过绑定事件接收子组件传过来的变量。

子组件通过编译器宏defioneEmits生成emit方法,里面放的是绑定事件的名称。

通过emit(事件名称,传的数据)向父组件传递。

父组件通过该事件的回调函数,设一个参数接收这个数据。

 

模板引用

 

vue2是通过$refs得到绑定的ref对象的

 

在vue3中,得到了更快捷的方式。

只需要先用ref生成一个ref对象,

再通过ref标识绑定ref对象到标签即可使用。

 

 provide和inject

 

project 和 inject 的 作用就是实现跨层组件通信,某个父级组件和子级组件进行通信。

 

 

 

使用方法很简单,不再赘述。

 

 

这里需要说明的是,每个组件只能修改本组件的数据,如果要实现跨组件修改,可以传递方法,底层组件调用方法修改顶层组件中的数据。

 

标签:01,函数,--,绑定,watch,参数,Vue3,组件,ref
From: https://www.cnblogs.com/xiaochaoheni/p/17390390.html

相关文章

  • vue+cesium实现卫星在轨绕行动画
    1、初始化蓝星首先要实现这个功能,一定要开启时间轴timeline:true,//是否显示时间线控件this.viewer=newCesium.Viewer('cesiumContainer',{    baseLayerPicker:false, //影像切换    animation:false, //是否显示动画控件......
  • 爬楼梯
    【题目描述】树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数。例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级,也可以第一次走两级,第二次走一级,一共3种方法。【输入】输入包含若干行,每行包含一个正整数N,代表楼梯级数,1≤N≤30。【......
  • VMD-SSA-LSSVM,基于VMD分解的SSA优化LSSVM做短期电力负荷预测,预测精度非常高!
    VMD-SSA-LSSVM,基于VMD分解的SSA优化LSSVM做短期电力负荷预测,预测精度非常高!结果分析均方根误差(RMSE):0.17332平均绝对误差(MAE):0.12619平均相对百分误差(MAPE):2.0976%ID:46200697697328495......
  • 放苹果
    【题目描述】把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1是同一种分法。【输入】第一行是测试数据的数目t(0<=t<=20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。【输出】对输入的每组数据M和N,用一行输出......
  • java 启动参数设置
    nohupjava-Xms512m-Xmx1024m-XX:PermSize=64m-XX:MaxPermSize=512m-jarxxx.jar>>xxx.out2>&1&java虚拟机对外提供的可配置堆区的参数1、-Xms:表示java虚拟机堆区内存初始内存分配的大小,通常为操作系统可用内存的1/64大小即可,但仍需按照实际情况进行分配。有可能真的按......
  • 【2023-05-08】保持淳朴
    20:00读书做人,不是两件事。将所读之书,句句体贴到自己身上来,便是做人之法,如此方叫得能读书;人若不将来身上理会,则读书自读书,做人自做人,只算做“不曾读书的人”。                                    ......
  • Linux文件传输FTP命令详解
    首先需要下载ftp客户端工具yuminstall-yftplftp语法ftp(选项)(参数)选项-d启动调试模式-u关闭自动认证-e不记录历史指令-i关闭交互模式-x在成功认证之后,协商密钥-n关闭自动登录功能-p传输文件模式为被动模式-v程序运行时......
  • Postgresql集群搭建与PostGIS安装
    目录Postgresql集群搭建手册一、软件安装预先准备工作二、Postgresql安装(附带PostgreGIS安装)2.1potgresql安装2.2postgres常见错误说明三、PostgreGIS安装postGIS四.Postgresql数据库备份与恢复五.postgresSQL集群重启Postgresql集群搭建手册一、软件安装预先准备工作Linu......
  • SQL Server非默认实例、默认端口、更改端口后 进行发布订阅 配置
    角色服务器名称实例名称端口发布服务器TEST1mysqlserver14333订阅服务器TEST2mysqlserver14333    解决办法:需要在A和B服务器上分别配置对方的数据库别名操作:SQLServer网络配置->SQLNativeClient10.0配置->别名->新建别名  要求......
  • rsync笔记
    1、跨文件系统同步:一方是LINUX使用UTF8字符集,另一方是WINDOWS使用GBK字符集须添加参数,中文同步方正常显示--iconv=utf8,gbk2、文件权限参考这里:https://stackoverflow.com/questions/34147565/rsync-uid-gid-impossible-to-set-cases-cause-future-hard-link-failure-how-t......