首页 > 其他分享 >Vue按需引入注册UI以及自定义组件的封装

Vue按需引入注册UI以及自定义组件的封装

时间:2022-12-27 13:45:56浏览次数:34  
标签:Vue 自定义 app component element vue UI import App

1.单文件global注册自定义组件的封装
import A from "../view/A.vue";
import B from "../view/B.vue";
const components = { A, B };

export default {
  install(Vue) {
    for (let k in components) {
      Vue.component(k, components[k]);
    }
  },
};
在main.js中引入使用
import LocalComponents from "./global";
createApp(App).use(LocalComponents).mount("#app");

2.按需引入注册UI组件的封装 (比如elementPlus的组件以及图标)
(1)单文件register-element.ts (组件库)
import { App } from 'vue'
import 'element-plus/theme-chalk/base.css'
import 'element-plus/theme-chalk/index.css'
import {
  ElForm,
} from 'element-plus'

const components = [ElForm]

export default function (app: App): void {
  for (const component of components) {
   app.component(component.name, component)
  }
}
(2)单文件register.elementIcon.ts (图标库)
import { App } from 'vue'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'

export default function (app: App) {
  for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    app.component(key, component)
  }
}

(3)文件抽离,在index.ts中全部注册函数
import { App } from 'vue'
import registerElement from './register-element'
import registerElementIcon from './register-elementIcon'

export function globalRegister(app: App): void {
  registerElement(app)
  registerElementIcon(app)
}

(4)最后在main.js中局部引入-- 封装后的element-plus
import { globalRegister } from "./global";
createApp(App).use(globalRegister).mount("#app");

标签:Vue,自定义,app,component,element,vue,UI,import,App
From: https://www.cnblogs.com/songkomei/p/17007899.html

相关文章

  • 如何自定义小程序页面分享?
    步骤分解界面设置选中页面点击页面右侧图标点击界面设置设置值这样就可以实现自定义小程序页面分享了。......
  • Vue笔记
    watch和watchEffect的区别简述watchEffect不需要指定监听的属性,自动收集依赖,只要在回调中引用到了响应式的属性,只要这些属性发生改变,回调就会执行。watch可以获取到新......
  • Vue3之computed计算属性
    计算属性  computed函数与Vue2.x中computed配置功能一致写法<template><h1>一个人的信息</h1>姓:<inputtype="text"v-model="person.firstName">......
  • Vue技术5.Vue中的MVVM
    <!DOCTYPEhtml><html><head><matacharset="UTF-8"/><title>理解MVVM</title><!--引入Vue--><scripttype="text/javascript"src......
  • Vue技术6.1回顾Object.defineproperty方法
    <!DOCTYPEhtml><html><head><matacharset="UTF-8"/><title>回顾Object.defineproperty方法</title></head><body><scripttype="te......
  • Vue技术6.2何为数据代理
    <!DOCTYPEhtml>><html><head><matacharset="UTF-8"/><title>何为数据代理</title></head><body><!--数据代理:通过一个对象代理对......
  • Vue技术7.2事件修饰符
    <!DOCTYPEhtml>><html><head><mattacharset="UTF-8"/><title>事件修饰符</title><!--引入Vue--><scripttype="text/javascript"......
  • Vue技术8.2姓名案例_methods实现
    <!DOCTYPEhtml>><html><head><metacharset="UTF-8"/><title>姓名案例_methods实现</title><!--引入Vue--><scripttype="text/ja......
  • Vue技术8.2姓名案例_methods实现
    <!DOCTYPEhtml>><html><head><metacharset="UTF-8"/><title>姓名案例_methods实现</title><!--引入Vue--><scripttype="text/ja......
  • vue3_05使用reactive来处理复杂数据
    vue3中除了提供了ref函数以为还提供了reactive函数来操作数据,一般情况下我们使用ref函数来操作简单类型数据,reactive函数来操作复杂类型数据<template><div>{{objRet.na......