Ts里联合类型和交叉类型,枚举类型,父子组件生命周期钩子函数执行顺序,setup函数和script setup语法糖,rightreduce+reverse

server/2024/10/19 13:15:40/

目录

1 Ts里联合类型和交叉类型

type和interface编译后都消失了

interface 可以extends type,同时type也可以与interface类型交叉

class能够通过implements实现接口或类型别名,但是被认为是静态的,不能实现/扩展命名联合类型的类型别名

2 枚举类型 

3 父子组件生命周期钩子函数执行顺序

4 setup函数和script setup语法糖

5 rightreduce+reverse


1 Ts里联合类型和交叉类型

type num = number
let pine:num=1
type apple = {name:'circle',x:Number} | {name:'square',x:Number,y:Number}
function getcircle(param:apple):num{if(param.name==='circle') {return Math.PI*param.x*param.x} else if(param.name==='square') {return param.x*param.y}
}
let app = {name:'circle',x:8
}
console.log(getcircle(app)*pine)

联合类型:如果用在原始类型上 取任意一种;用的更多的是作为别名的方式,不是创建新类型,创建别名来引用之前的类型

交叉类型:用在复杂类型上取所有类型的并集(type a = c &{}相当于继承自c)

type c = apple & {d:Number
}
let cc = {d:9,name:'circle',x:100
}
console.log(cc.d)

type和interface编译后都消失了

type apple=(name:string,id:number)=>void
type applepie = {name:string,id:numberapple:(name:string,id:number)=>void
}
interface water{(name:string,id:number):void
}
let c:water = function(name,id) {console.log('water')
}

interface 可以extends type,同时type也可以与interface类型交叉

type apple= {
str:string
}
interface app extends apple {num:number
}
let app1:app = {
num:9,
str:'aaa'
}type applepie = app & {bo:boolean
}
let applepie1:applepie ={bo:false,num:9,
str:'aaa'
}

class能够通过implements实现接口或类型别名,但是被认为是静态的,不能实现/扩展命名联合类型的类型别名

2 枚举类型 

默认数字类型枚举 可以将数字类型赋值给枚举类型的实例

默认枚举值从0开始,可以赋值

enum color {red,green,blue
}
let ins = color.red//0
ins=2
console.log(color.red,ins)//0, 2
//默认枚举值从0开始,但是可以赋值enum colorr {red,green=3,blue
}
console.log(colorr.red,colorr.blue,colorr.green)//0 4 3

3 父子组件生命周期钩子函数执行顺序

Vue 3引入了新的组件选项 setup ,替代了Vue 2中的 beforeCreate 和 created

父组件:onbeforemount-》子组件onbeforemount-〉子组件onmounted-》父组件onmounted

父组件更新:onbeforeupdate-〉子组件onbeforeupdate-》子组件onupdated-〉父组件onupdated

子组件更新:子组件onbeforeupdate-》子组件onupdated

父组件销毁时,执行顺序:onbeforeunmount-〉子组件onbeforeunmount-》子组件unmounted-〉unmounted

由于要从父组件给子组件传递props,所以需要在父组件的beforeMount或beforeMount阶段发起数据请求,子组件中要对props做简单判断再使用,因为在渲染阶段可能会拿到非法的值 

想访问父组件实例(getCurrentInstance().parent)访问父组件实例(相当于选项式 API 中的 this ?)

4 setup函数和script setup语法糖

setup函数是组合式api的入口,需要将定义的方法和属性都return出去 这个函数在export default里面,第一个参数是props第二个参数是context
在实例创建之前,但是在props解析之后

------------------------------------------
script setup语法糖
所有方法和属性都自动暴露给模版,不要components注册了只要引用就能自动获得,包括自定义指令
emits和props变成引用defineemits和defineprops
调用在beforecreate之前
不要写export default和setup函数了

javascript">let a=[2,3]
function set(a) {a.push(4)
a=[...a,5]
console.log(a)//2,3,4,5
}
set(a)
console.log(a)//2,3,4

a = [...a, 4];:这行代码创建了一个新数组,包含当前 a 中的所有元素(即 [1, 2, 3])和 4。但是,这个操作仅改变了函数内部参数 a 的引用,不会影响外部的 a。函数内部 a 现在指向一个新的数组 [1, 2, 3, 4]

5 rightreduce+reverse

将reduce的功能里累积值和当前值的使用反过来并实现reverse函数

javascript">function rightreduce(arr,func,ini) {for(let i=0;i<arr.length;i++) {ini =  func.call(arr,arr[i],ini,arr);}return ini}let c= rightreduce([1,2],(cur,pre)=>[cur,...pre],[])console.log(c)


http://www.ppmy.cn/server/133048.html

相关文章

idea-java序列化serialversionUID自动生成

&#x1f496;简介 java.io.Serializable 是 Java 中的一个标记接口&#xff08;marker interface&#xff09;&#xff0c;它没有任何方法或字段。当一个类实现了 Serializable 接口&#xff0c;那么这个类的对象就可以被序列化和反序列化。序列化是将对象的状态转换为字节流…

C++基础

C 进一步扩充和完善了 C 语言&#xff0c;像Java一样它也是一种面向对象的程序设计语言。 上一篇&#xff1a;C语言基础 1. 程序结构 让我们逐帧分析 #include <iostream> using namespace std;// main() 是程序开始执行的地方int main() {cout << "Hello …

【Jenkins】2024 最新版本的 Jenkins 权限修改为 root 用户启动,解决 permission-denied 报错问题

最新版本的 Jenkins 修改 /etc/sysconfig/jenkins 中的 JENKINS_USERroot不会再生效&#xff0c;需要按照以下配置进行操作&#xff1a; vim /usr/lib/systemd/system/jenkins.service然后重启就可以了 systemctl daemon-reload # 重新加载 systemd 的配置文件 systemctl res…

集成电路学习:什么是USB通用串行总线

USB&#xff1a;通用串行总线 USB&#xff0c;全称Universal Serial Bus&#xff08;通用串行总线&#xff09;&#xff0c;是一种外部总线标准&#xff0c;用于规范电脑与外部设备的连接和通讯。以下是关于USB的详细介绍&#xff1a; 一、USB的定义与特点 USB的定义&#xff…

Vue 3中集成Element Plus组件库

文章目录 一、Element Plus简介二、安装Element Plus2.1 安装Element Plus2.2 引入Element Plus三、使用Element Plus组件3.1 创建组件3.2 组件引入四、总结随着前端开发的快速发展,组件库已经成为开发实践中不可或缺的部分。 Vue 3作为一个现代的 JavaScript框架,其灵活性…

大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

鸿蒙网络编程系列19-获取网络连接信息并选择一种绑定到应用示例

1. 网络类型简介 移动设备一般都具备移动网络和无线WIFI的连接能力&#xff0c;有些还可以接入有线以太网&#xff0c;这些网络可以根据需要随时切换。鸿蒙APP可以自动适应上述的网络&#xff0c;一般来说&#xff0c;会优先使用WIFI或者有线以太网&#xff0c;移动网络因为要…

Win11电脑快捷键大全

一、桌面快捷方式 通过以下桌面键盘快捷方式&#xff0c;可以跨桌面环境&#xff08;包括“开始”菜单、任务栏、“设置”等&#xff09;高效地打开、关闭、导航和执行任务。 Alt Esc - 循环浏览打开的窗口。 Alt F4 - 关闭活动窗口。 (如果没有活动窗口&#xff0c;则会出…