插槽
1.在子组件里面使用<slot></slot>进行占位。
2.单个标签直接写,如果有多个标签要使用<template></template>标签进行包裹。
v-slot指令指定默认名称 v-slot:default
3.具名插槽,如果要传入多个插槽,需要在slot标签上命名,在v-slot指令上指定名字。
4.作用域插槽:在slot标签上定义一个属性来传递参数,在v-slot指令后赋值。
本质:子组件通过插槽传值到父组件
5.v-slot:指令的简写=> #
依赖注入
1.作用:实现跨组件通讯
2. 通过provide(){ return{传入的数据}}
3. 在接收的组件里通过inject选项来接收传来的数据。
inject写法:
// inject:['message'],
// 写法二
inject:{
msg:{
from:'message',
// 设置一个默认值,当未传值时显示默认值
default:'你好'
}
},
- 要实现传入数据的响应式,需要用到计算属性方法computed(()=> this.msg)
计算属性方法是vue实例对象上的方法,所以要从vue上解构出来才能使用
动态组件
1.让多个组件使用同一个挂载点,并动态切换,这就是动态组件
2.在component标签上使用:is属性来切换节点。
(操作组件时填写:is的属性值要加引号,不然默认操作data内的数据)
缓存组件
1.用内置组件<KeepAlive> 包裹在动态组件,来缓存组件,切换时不会再销魂和重新创建组件。
2.当组件被缓存之后,切换时他的activated和deactivated生命周期钩子函数将会被调用
3.使用include可以规定哪些组件被缓存,属性值是组件的名字,要用name选项定义
异步组件
1.异步组件是定义在服务端的组件,通过网络获取到前端加载出来使用
2.Vue 提供了defineAsyncComponent方法来实现此功能
<Suspense>内置组件
1.用法 :包裹在异步组件上,通过名称为fllback的插槽来设置加载样式。 2.作用: 在异步组件加载需要时间时,来设置一个效果表明加载效果。
<Teleport>传送门(内置组件)
1.用法: 包裹在子组件上, 使用to属性来规定要传送到的位置。
2.作用: 在其他位置打开被包裹的子组件
<Transition> 过度动画(内置组件)
1.用法:包裹在dom节点上
2.如果不取名字,css默认形式为
.v-enter-active,
.v-leave-active {
transition: opacity 0.5s ease;
}
.v-enter-from,
.v-leave-to {
opacity: 0;
}
3.如果取名,则用取的名字代替上面代码片段中的v