Vue3_基础使用_2

这节主要介绍:标签和组件的ref属性,父子组件间的传递值,ts的接口定义,vue3的生命周期

1.标签的ref属性。

   1.1ref属性就是给标签打标识用的,相当于html的id,但是在vue3中用id可能会乱,下面是ref的使用。
打一个普通标签,并且将对象转为ref的响应式:

//1 ref是标识类似ID,获取标识的值
<span ref='title1'>AAA</span>
<script lang="ts" setup>let title1=ref();//变量要与html的ref相同console.log(title1.value);
</script>
1.2给组件标记一个ref属性,并且实现    子组件  给   父组件传递数据。

子组件留意  defineExpose({a,b});  //让父组件看那个就交出去哪个,不交父组件就拿不到。

  //子组件<script lang="ts" setup>import{ref,defineExpose}from 'vue'let a=ref(100);//声明一个响应式变量let b=ref(200);defineExpose({a,b});//让父组件看那个就交出去哪个</script>

父组件接收

   //父组件中<person ref='ren'/><!--给子组件标记ref属性--><script lang="ts" setup>import{ref}from 'vue'let ren=ref();//获取子组件console.log(ren.value);//这里面有子组件给的数据</script>

2 .ts的接口定义

  a.新建个文件夹types里面建立index.ts文档

   定义了一个对象接口规范,后面定义这个对象都得按这个规范来(名称,类型).

export interface personInterface{id:string,name:string,age:string
}//定义对象接口规范并暴露出去

  定义一个对象数组接口标准

//4定义个自定义类型(就是个数组)
export type interface persons=Array<personInterface>
//personInterface[]也行  //定义数组接口规范

 ts定义这些的好处是在后面的使用中保证不会写错,都要准守的标准。

利用接口定义对象及数组对象:

//引入ts文件  @代表到根目录,如果是index可以不写
import {type personInterface,type persons} from '@/types/index.ts'//使用对象接口规范 如果你的属性及类型错了它会提示
let person:personInterface ={id:'001',name:'张三',age:20}//使用自定义数组规范
let personlist:persons=[{id:'001',name:'张三',age:20},,,]

3 利用上面的接口  父组件给子组件传递数据,保证了正确性。

父组件中:

//引入
import {type personInterface,type persons} from '@/type'
//1父组件根据接口 定义对象数组
let personlist:persons=[{id:'001',name:'张三',age:20},{id:'002',name:'张4',age:23}]
//2传递给子组件
<person :list='personlist' />

子组件中: 

//子组件  只接收
import{defineProps}from 'vue'
let v=defineProps(['list']);//v.list;数组内可以是多个
<span>{{list}}</span>//html 可以直接使用//子组件  接收+限制类型   告诉父组件我只要persons的值
defineProps<list?:persons>()//这个list对应父组件写的参数名称,加?:可以不传//子组件 接收+限制类型+默认值
//告诉父组件  我要一个persons类型的数组,若不给我就显示默认的值
import{withDefaults}from 'vue'
withDefaults(defineProps<list?:persons>(),{list:()=>[{id:'001',name:'张三',age:20}]
})以上三种接收方式。

4 vue3的生命周期:

vue2生命周期
  创建(创建前beforeCreate   创建完成created)
  挂载(挂载前beforeMount    挂载完成mounted)
  更新(更新前beforeUpdate   更新完成updated)//页面有更新才执行
  销毁(销毁前beforeDestroy  销毁完成destroyed)

vue3生命周期
  创建  <script setup>...这里直接写就是创建</setup>
  挂载 
      import{onBeforeMount,onMounted}from 'vue'
      onBeforeMount(()=>{...挂载代码});      onMounted(()=>{...挂载完毕代码});
  更新
     import{onBeforeUpdate,onUpated}from 'vue'
     onBeforeUpdate(()=>{...更新代码});      onUpated(()=>{...更新完毕代码});
  卸载
     import{onBeforeUnmount,onUnmounted}from 'vue'
     onBeforeUnmount(()=>{...卸载代码});   onUnmounted(()=>{...卸载完毕代码});

vue3将销毁改为了卸载,创建只有一个方法,直接在setup中写即可,以上还不包括路由的钩子。

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

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

相关文章

分布式事务_学习笔记

分布式事务 0.学习目标 1.分布式事务问题 1.1.本地事务 本地事务&#xff0c;也就是传统的单机事务。在传统数据库事务中&#xff0c;必须要满足四个原则&#xff1a; 1.2.分布式事务 分布式事务&#xff0c;就是指不是在单个服务或单个数据库架构下&#xff0c;产生的事务…

杂题——试题 算法训练 区间最大和

分析&#xff1a; 如果使用两个for循环遍历所有情况&#xff0c;运行会超时解决运行超时的关键点在于&#xff1a;及时停止累加&#xff0c;丢弃当前的子序列 比如【1&#xff0c;-2&#xff0c;3&#xff0c;10】从第一个数字开始的子序列的和小于从第三个数字开始的子序列的和…

PSQL常用操作

目录 前言 准备工作 添加postgres用户 初始化数据库 启动服务 创建数据库 psql连接数据库 常规操作 数据库 schema相关 插件 其他 前言 老折腾&#xff0c;还是记录点啥吧...... 基于本地PG数据库(打包为绿色版本了)&#xff0c;实操记录&#xff0c;版本pgsql12…

关于华为应用市场上架,申请权限未告知目的被驳回问题的简单处理方式

关于华为应用市场上架过程中出现的【您的应用在运行时&#xff0c;未同步告知权限申请的使用目的&#xff0c;向用户索取&#xff08;存储、拍照&#xff09;等权限&#xff0c;不符合华为应用市场审核标准。】 使用方式&#xff1a; 1、引入 import permision from "/m…

【Jenkins】pipeline基本使用

目录 一、pipeline 二、创建pipeline项目 1、安装pipeline插件 2、创建pipeline项目 三、pipeline语法 1、pipeline组成 2、agent&#xff1a;指定流水线的执行位置&#xff0c;流水线中每个阶段都必须在某个地方执行 3、stage&#xff1a;阶段&#xff0c;代表流水线的…

编程实例分享,眼镜店电脑系统软件,配件验光管理顾客信息记录查询系统软件教程

编程实例分享&#xff0c;眼镜店电脑系统软件&#xff0c;配件验光管理顾客信息记录查询系统软件教程 一、前言 以下教程以 佳易王眼镜店顾客档案管理系统软件V16.0为例说明 如上图&#xff0c; 点击顾客档案&#xff0c;在这里可以对顾客档案信息记录保存查询&#xff0c;…

Linux(二)

远程登录 Xshell6 Xshell 是一个强大的安全终端模拟软件&#xff0c;它支持 SSH1, SSH2, 以及 Microsoft Windows 平台的 TELNET 协议&#xff1b; Xshell 可以在 Windows 界面下用来访问远端不同系统下的服务器&#xff0c;从而比较好的达到远程控制终端的目的&#xff1b; …

java hutool工具类实现将数据下载到excel

通过hutool工具类&#xff0c;对于excel的操作变得非常简单&#xff0c;上篇介绍的是excel的上传&#xff0c;对excel的操作&#xff0c;核心代码只有一行。本篇的excel的下载&#xff0c;核心数据也不超过两行&#xff0c;简洁方便&#xff0c;特别适合当下的低代码操作。 下载…

JAVA后端上传图片至企微临时素材

1.使用场景 在使用企业微信API接口中&#xff0c;往往开发者需要使用自定义的资源&#xff0c;比如发送本地图片消息&#xff0c;设置通讯录自定义头像等。 为了实现同一资源文件&#xff0c;一次上传可以多次使用&#xff0c;这里提供了素材管理接口&#xff1a;以media_id来…

【AI绘画UI+Windows部署】Fooocus:Controlnet原作者结合了sd的开源和Midjourney重新设计的UI

代码&#xff1a;https://github.com/lllyasviel/Fooocus windows一键启动包下载&#xff1a;https://github.com/lllyasviel/Fooocus/releases/download/release/Fooocus_win64_2-1-831.7z B站视频教程&#xff1a;AI绘画入门神器&#xff1a;Fooocus | 简化SD流程&#xff0c…

深度学习(12)--Mnist分类任务

一.Mnist分类任务流程详解 1.1.引入数据集 Mnist数据集是官方的数据集&#xff0c;比较特殊&#xff0c;可以直接通过%matplotlib inline自动下载&#xff0c;博主此处已经完成下载&#xff0c;从本地文件中引入数据集。 设置数据路径 from pathlib import Path# 设置数据路…

1E,Jarvis March

四个问题&#xff1a; 一&#xff0c;Jarvis March算法借鉴了什么算法&#xff1f; 二&#xff0c;如何确定初始点 三&#xff0c;如何获取凸包的边&#xff1f; 四&#xff0c;Jarvis March算法的好处在哪里&#xff1f; 首先看第一个问题&#xff0c; 一&#xff0c;Jarvis …

了解UDP发送过快导致的问题和对应解决方案

在当今这个以数据为核心的时代&#xff0c;企业对于数据传输的速度和稳定性有着日益增长的需求。UDP凭借其低延迟和高效率的特性&#xff0c;在实时通信和大规模数据传输领域扮演着关键角色。然而&#xff0c;UDP的无连接特性和缺乏可靠性也给数据传输带来了挑战&#xff0c;尤…

尝试创建若依系统项目(vue3+element-plus+vite) 持续更新...

若依官网&#xff1a;RuoYi 若依官方网站 |后台管理系统|权限管理系统|快速开发框架|企业管理系统|开源框架|微服务框架|前后端分离框架|开源后台系统|RuoYi|RuoYi-Vue|RuoYi-Cloud|RuoYi框架|RuoYi开源|RuoYi视频|若依视频|RuoYi开发文档|若依开发文档|Java开源框架|Java|Spri…

[SWPUCTF 2021 新生赛]easy_md5

用get给name 用post给password 二个值不相等MD5相等 可以通过php的弱类型绕过 $a!$b md5($a)md5($b)找到不同 a 和 a和 a和b&#xff0c;两者的md5值均为0e开头的形式

Open3D 深度图像转点云

目录 一、算法原理1、算法过程2、主要函数3、算法源码二、代码实现三、结果展示1、深度图像2、点云四、测试数据

LSTR: 基于Transformer的车道形状预测

LSTR: 基于Transformer的车道形状预测 项目背景与意义LSTR的特性和功能最新更新即将推出的功能模型资源库数据准备设置环境训练和评估引用许可证贡献致谢 在计算机视觉领域&#xff0c;车道检测是自动驾驶和智能交通系统中的关键技术之一。我们推出了一种名为LSTR的车道形状预测…

mysql 锁知识汇总

目录 一、锁1.1 什么是锁&#xff1f;1.2 全局锁1.2.1 定义1.2.2 应用场景1.2.3 会出现的问题1.2.4 解决方法 1.3 表级锁1.3.1 表锁1.3.2 元数据锁&#xff08;MDL&#xff09;1.3.3 意向锁1.3.4 AUTO-INC锁 1.4 行级锁1.4.1 记录锁(Record Lock)1.4.2 间隙锁(Gap Lock)1.4.3 N…

【C++11】包装器

包装器 一、function包装器1、function包装器介绍2、包装示例3、function包装器统一类型4、function包装器简化代码5、function包装器的意义 二、bind包装器1、bind包装器介绍&#xff08;1&#xff09;bind包装器&#xff08;2&#xff09;调用bind的一般形式 2、bind包装器绑…

vite和vue-cli实现原理和优化及区别

Vite&#xff1a; 1. 实现原理&#xff1a; Vite 是一个基于 ESModule 的构建工具。它利用原生 ESModule 的特性&#xff0c;将每个文件作为一个模块&#xff0c;通过浏览器去解析和执行&#xff0c;而不需要提前将文件打包成一个单独的 bundle。Vite 利用浏览器的原生 ESMod…