📅多选月份
1 | <template> |
多选年份
1 | <!-- |
element-ui 实现表格多行显示超出省略
1 | <!-- |
基于element ui 封装下拉树
参考文章, vue3 element-plus 有treeSelect 组件
使用
1 | <!-- 下拉树 --> |
封装
1 | <template> |
基于element-plus的弹窗封装
1 | <template> |
使用,
1 | <Dialog |
基于element 的图片预览封装
preview/preview.vue
1 | <template> |
preview/index.js
1 | import PreviewItem from "./Preview.vue"; |
使用,在main.js 注册组件
1 | // 图片弹窗 |
全局调用
1 | this.$openPreview(['url']) |
基于element-plus 封装图片预览组件
命令式组件
Preview/index.vue
1 | <template> |
Preview/index.js
1 | import PreviewImg from './index.vue' |
使用
1 | import previewImg from "@/components/PreviewImg" |
vite 注册成全局 svg-icon 组件
vite 通过 使用 vite-plugin-svg-icons 插件使用 svg 图片
1 | yarn add vite-plugin-svg-icons -D |
在main.js 中
1 | import 'virtual:svg-icons-register' |
配置 vite.config.js
1 | //import path,{ resolve } from 'path' |
新增组件 icon-svg
1 | <template> |
全局注册 组件, 使用
1 | import { defineAsyncComponent } from 'vue' |
1 | <m-svg-icon class="w-1.5 h-1.5" name="hamburger"></m-svg-icon> |
vue-cli 注册全局 svg-icon 组件
components/SvgIcon/index.vue
1 | <template> |
assets/icons/svg 文件夹下放置 svg icon
assets/icons/index.js
1 | import Vue from 'vue' |
vue.config.js 配置 chainWebpack 加载 svg
1 | // set svg-sprite-loader |
在main.js 中注册
1 | import './assets/icons' // icon |
使用
1 | <svg-icon :icon-class="iconName" class-name="icon" style="height: 25px;width: 16px;"/> |
图标选择器组件
IconSelect/index.vue
1 | <template> |
IconSelect/requireIcons.js
1 | const req = require.context('../../assets/icons/svg', false, /\.svg$/) |
使用
1 | <el-col > |
- 本文作者: 王不留行
- 本文链接: https://wyf195075595.github.io/2022/06/17/programming/vue/手写组件/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!