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.rhkb.cn/news/250832.html

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

相关文章

卸载Ubuntu双系统

卸载Ubuntu双系统 我们卸载Ubuntu双系统&#xff0c;可能出于以下原因&#xff1a; 1、Ubuntu系统内核损坏无法正常进入 2、Ubuntu系统分配空间不足&#xff0c;直接扩区较为复杂 3、以后不再使用Ubuntu&#xff0c;清理留出空间 123无论出于哪种原因&#xff0c;我们都是要…

Power BI案例-链接Mysql方法

Power BI案例-连锁Mysql 方法1-通过组件mysql-connector-net-8.3.0&#xff1a; 选择文件–获取数据–选择MySQL数据库–选择链接 提示无组件&#xff0c;选择了解详细情况 弹出浏览器&#xff0c;选择下载 不用登陆&#xff0c;可以直接下载 下载的组件如下&#xff1a…

2024年数学建模美赛 A~E 题目解析

2024美赛A题&#xff1a;资源可用性和性别比例 背景 尽管一些动物物种不属于通常的雄性或雌性&#xff0c;大多数物种在出生时要么显著地为雄性&#xff0c;要么为雌性。虽然许多物种在出生时表现出1:1的性别比&#xff0c;但其他物种则偏离了这个均衡的性别比例。这被称为性…

算法day9

算法day9 栈与队列基础232用栈实现队列225用队列实现栈 栈与队列理论基础 言简意赅&#xff1a;栈的原理就是后进先出。队列就是先进先出。 相关操作&#xff1a; 栈&#xff1a;入栈&#xff0c;出栈&#xff0c;判栈空&#xff0c;取栈顶元素。 队列&#xff1a;出队&#…

什么是ACL?

知识改变命运&#xff0c;技术就是要分享&#xff0c;有问题随时联系&#xff0c;免费答疑&#xff0c;欢迎联系&#xff01; 厦门微思网络​​​​​​https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle OC…

Skywalking的Trace Profiling 代码级性能剖析功能应用详解

代码级性能剖析 Skywalking 提供了Trace Profiling功能对具体出现问题的span进行代码级性能剖析。 代码级性能剖析就是利用方法栈快照&#xff0c;并对方法执行情况进行分析和汇总。并结合有限的分布式追踪 span 上下文&#xff0c;对代码执行速度进行估算。性能剖析激活时&a…

Linux系统管理和Shell脚本笔试题

1、写一个sed命令&#xff0c;修改/tmp/input.txt文件的内容&#xff0c;要求&#xff1a;(1) 删除所有空行&#xff1b;(2) 在非空行前面加一个"AAA"&#xff0c;在行尾加一个"BBB"&#xff0c;即将内容为11111的一行改为&#xff1a;AAA11111BBB #写入内…

自然语言处理(NLP)—— Dialogflow ES聊天机器人

1. 背景介绍 这个实验室的目标是让你了解并使用Google的Dialogflow服务。Dialogflow是一个可以让你创建聊天机器人的服务&#xff0c;这个过程不需要或者只需要很少的编程技能。 1.1 账号的创建 为了完成这个实验室&#xff0c;你需要在以下网站上创建账号&#xff1a…

STM32--USART串口(3)数据包

一、前言 在实际的工程中肯会有同时发送多种数据的情况&#xff0c;比如要不停的发送x、y、z分别对应三种不同的数据。xyzxyzxyz&#xff0c;但接收方可能是从中间某个地方开始接收的&#xff0c;这就导致数据错位。所以我们就需要将数据进行分割&#xff0c;打包成一个一个的…

Request Response 基础篇

Request & Response 在之前的博客中&#xff0c;初最初见到Request和Response对象&#xff0c;是在Servlet的Service方法的参数中&#xff0c;之前隐性地介绍过Request的作用是获取请求数据。通过获取的数据来进行进一步的逻辑处理&#xff0c;然后通过对Response来进行数…

如何搭建私有云盘SeaFile并实现远程访问本地文件资料

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-hsDnDEybLME85dTx {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

MySQL 多表查询

重点&#xff1a; MySQL 的 三种安装方式&#xff1a;包安装&#xff0c;二进制安装&#xff0c;源码编译安装。 MySQL 的 基本使用 MySQL 多实例 DDLcreate alter drop DML insert update delete DQL select 3.5&#xff09;DDL 语句 表&#xff1a;二维关系 设计表&…

python计算两个DataFrame的指定两列中,相同的数据有多少

目的&#xff1a;查询数据1和数据2中&#xff0c;red与red列相同 并且blue与blue列相同的&#xff0c;情况有多少。 &#xff08;备注&#xff1a;两个数据中格式不一致&#xff0c;需要经过json提取等处理步骤&#xff09; 思路步骤&#xff1a; 1、读取数据1&#xff0c;筛选…

跨平台开发:浅析uni-app及其他主流APP开发方式

随着智能手机的普及&#xff0c;移动应用程序&#xff08;APP&#xff09;的需求不断增长。开发一款优秀的APP&#xff0c;不仅需要考虑功能和用户体验&#xff0c;还需要选择一种适合的开发方式。随着技术的发展&#xff0c;目前有多种主流的APP开发方式可供选择&#xff0c;其…

OfficeWeb365 Readfile 任意文件读取漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

使用Eclipse搞Android项目报错

相信现在都没什么人还会用Eclipse来开发的了。 不过安装完后&#xff0c;打开Eclipse会提示我的Jdk版本不符合 --------------------------- Incompatible JVM --------------------------- Version 1.8.0_391 of the JVM is not suitable for this product. Version: 17 or g…

PHP中的stdClass:一个动态的空白板

PHP中的stdClass&#xff1a;一个动态的空白板 在PHP编程中&#xff0c;灵活性和动态性是开发人员追求的重要目标。而stdClass作为PHP中的一个特殊类&#xff0c;为我们提供了一个通用的空白板&#xff0c;允许在运行时动态地添加属性和方法。它的存在为处理动态数据结构和临时…

MySQL的ACID、死锁、MVCC问题

1 ACID ACID代表原子性&#xff08;atomicity&#xff09;、一致性&#xff08;consistency&#xff09;、隔离性&#xff08;isolation&#xff09;和持久性&#xff08;durability&#xff09;。一个确保数据安全的事务处理系统&#xff0c;必须满足这些密切相关的标准。 原…

docker集成 nacos/nacos-server (包括踩的坑)

tips 这边需要的数据库我已经安装好了&#xff0c;所以数据库的安装这边已经省略了 拉取镜像&#xff08;这边使用nacos1.4.1作为例子&#xff09; docker pull nacos/nacos-server:1.4.1创建映射的文件夹 (conf存放配置文件&#xff0c;logs存放日志文件) mkdir -p /data/n…

java常量和kotlin常量

在java中使用final声明常量在kotlin中使用const val声明常量 常量在编译为字节码后会直接把调用常量的地方直接替换为常量值&#xff0c;示例如下&#xff1a; public class ConstDemo {public static final String NAME "Even";private static final int ID 100…