直接在项目中使用Vue.use来使用自己的公共组件

之前一篇讲解了怎么搭建属于自己的组件库,那么如果不通过npm --save xxx 自己的组件,怎么直接在项目中通过use来使用自己写的公共组件呢。

使用:

在公共组件中新建一个index.js 文件
在这里插入图片描述
index文件的内容如下:

import commonRadio from '../components/zrd/commonRadio';
import commonSelect from '../components/zrd/commonSelect';
import commonMuitSelect from '../components/zrd/commonMuitSelect';
import upload from '../components/Upload/upload';
import commonCurrentUpload from "../components/df/commonCurrentUpload";
import commonGetSelect from "../components/df/commonGetSelect";

const components = [commonRadio, commonSelect, upload, commonMuitSelect, commonCurrentUpload, commonGetSelect];

const component = {
    install: function (Vue) {
        components.map(component => {
            Vue.component(component.name.replace(/([A-Z])/g, "-$1").toLowerCase(), component)
        })
    }

}

// // 导出该组件
export default component

首先引入这些组件,然后通过install安装这些组件,这些组件里面必须写上name

在这里插入图片描述
然后在index中,通过正则将组件的名字转化成 - 形式,如commonGetSelect会转化为common-get-select,然后就可以在其他组件中去使用。

在main.js中去注册:

import commonUi from "@/components/index";
Vue.use(commonUi);

通过这样全局注册之后,所有的组件都不再需要在页面再引入和在components里面注册了,可以直接将common-get-select当做一个标签一样使用<common-get-select> </common-get-select>

详解:

以下代码通过map将每一个组件循环注册,但是这样使用的时候我们需要写成<commonGetSelect></commonGetSelect>这种形式,所以需要将组件的名字通过正则表达式component.name.replace(/([A-Z])/g, "-$1").toLowerCase()转化成<common-get-select> </common-get-select>这样,以达到我们的使用规范。

那么,由此可知,我们也可以直接在组件的name中写成:name:'common-get-select'。这样也可以直接写成以下形式:

install: function (Vue) {
        components.map(component => {
            Vue.component(component.name, component)
        })
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue公共组件库封装,可以将常用组件封装成一个独立的组件库,供团队内部使用,提高开发效率和代码复用率。以下是一些步骤: 1. 创建一个Vue项目,用于打包组件库。 2. 在src目录下创建一个components文件夹,用于存放组件。 3. 创建一个main.js文件,用于注册所有组件,并导出一个install方法。 4. 在package.json添加打包命令,如:"build": "vue-cli-service build --target lib --name my-components src/main.js"。 5. 在组件引入所需的Vue和其他库,如lodash等。 6. 编写组件,可以使用Vue的单文件组件或者普通的JS组件。 7. 在main.js注册组件,并导出一个install方法,如下: ``` import MyComponent from './components/MyComponent.vue'; const components = [ MyComponent, // 其他组件 ]; const install = function(Vue) { if (install.installed) return; install.installed = true; components.forEach(component => { Vue.component(component.name, component); }); }; if (typeof window !== 'undefined' && window.Vue) { install(window.Vue); } export default { install, MyComponent // 其他组件 }; ``` 8. 执行npm run build命令,将组件库打包成一个umd模块,可以使用script标签或者import语句引入使用。 9. 在其他项目引入组件库,并使用组件,如下: ``` import MyComponents from 'my-components'; import 'my-components/dist/my-components.css'; Vue.use(MyComponents); // 使用组件 <template> <my-component></my-component> </template> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

echo忘川

谢谢老板们

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值