icon组件-vue

vue icon组件

icon

  1. 用的阿里iconfont,在官网项目中生成js文件引入到index.html
    <script src='//at.alicdn.com/t/font_983260_pg8k6k5k6l9.js'></script>
  1. 书写icon.vue
<template>
    <svg class="icon" :class="sizeValue" aria-hidden="true">
        <use :xlink:href='iconName'></use>
    </svg>
</template>
<script>
export default {
    // 组件名称
    name: 'mimi-icon',
    // 定义传进来的值
    props: {
        name: {
            type: String,
            required: true,
            default: ''
        },
        size:{
            type: String,
            required: false,
            default: ''
        },
        // 当三种尺寸不满足时,可自定义
        w:{
            type: String || Number,
            required: false,
            default: ''
        },
        h:{
            type: String || Number,
            required: false,
            default: ''
        }
    },
    computed: {
        iconName() {
            return `#${this.name}`
        },
        sizeValue() {
            if(this.size) {
                return this.size;
            }else {
                // 默认取最小
                return 'sl';
            }
        }
    }
}
</script>
<style lang="scss" scoped>
.icon {
    width: 1em;
    height: 1em;
    vertical-align: -0.15em;
    fill: currentColor;
    overflow: hidden;
}
.sl{
    height: 14px;
    width: 14px;
}
.md{
    height: 24px;
    width: 24px;
}
.lg {
    height: 36px;
    width: 36px;
}
</style>
  1. 书写index.js注册为全局
import Icon from './icon/icon.vue'
export default (Vue)=>{
    Vue.component("mimi-icon",Icon);
}
  1. 注入main.js
Vue.use(commonComponent);
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容