将page-search
抽取成公共组件
每个地方需要用到这个组件的时候,写一份config
配置文件,再通过props
进行传递,这样就能动态生成需要的内容
将page-content
抽取成公共组件
- 对于时间格式化的代码抽取
1.<template v-for="item.type === 'timer'></template>
,其他用v-else-if
,一般的用v-else
2.具备更强的复用性(定制)。用具名插槽
抽取的config
数据,可以根据顺序来确定渲染的顺序
2.1 定义一个custom
类型
2.2 用template
写作用域插槽,拿到属性将属性传入插槽
2.3 回到用组件的地方利用插槽传过来的数据进行展示
// 组件内部
<template v-if="item.type === 'custom'">
<el-table-column align="center" v-bind="item">
<template #default="scope">
<slot
:name="item.slotName"
v-bind="scope"
:prop="item.prop"
></slot>
</template>
</el-table-column>
</template>
// 使用组件的地方
<page-modal>
<template #leader="scope">
<span class="leader">哈哈哈:{{ scope.row[scope.prop] }}</span>
</template>
<template #leader="scope">
<span class="parent">呵呵呵:{{ scope.row[scope.prop] }}</span>
</template>
</page-modal>