开发中使用到了mixin混入与slot插槽。
mixin
vue中关于代码复用的一个实现方式,通过将多个组件的相同代码块提取出来放入到一个js文件中,再通过 mixins: [mixin]
混入到组件内达到代码复用的目的,在项目具有多个相似功能的组件时很有用。
合并规则
- 钩子函数:同名钩子皆生效,且mixin会先于组件调用
- 数据对象:同名发生冲突时以组件内数据优先
- 值为对象的选项:methods、components、filters、directives,同数据合并方式。
( 这种规则方便于对mixin中不适用当前组件的代码进行灵活覆盖 )
插个眼:mixin在vue3中有了其替代品Composition API,其优点有
slot
创建组件时放置的一个占位,可在调用组件时自定义占位的具体显示内容,实现了复用组件的个性化的需求,在ui框架中应用广泛。
创建一个MyA.vue组件
匿名插槽
// MyA.vue:
<template>
<a v-bind:href="url" class="nav-link" >
<slot></slot>