第二天:vue全局导入组件,也是创建组价组件库的方式

我想写一篇专题博文,每天一个知识点

第二天

vue

20200408 全局导入组件

// 组件目录下新建一个index.js 文件
// 这其实就是开发公共组件库的方式, 以下为内容



// 导入button组件
import WButton from './Button'

// 组件列表
const components = [
  WButton
]

// 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,那么所有的组件都会被注册
const install = function (Vue) {
  // 判断是否安装
  if (install.installed) return
  // 遍历注册全局组件
  components.map(component => Vue.component(component.name, component))
}

// 判断是否是直接引入文件
if (typeof window !== 'undefined' && window.Vue) {
  install(window.Vue)
}

export default {
  // 导出的对象必须具有 install,才能被 Vue.use() 方法安装
  install,
  // 以下是具体的组件列表
  WButton
}





// 这里还有懒人模式 -----------------------------------------------------

// import Vue from "vue";
function changeStr(str) {
  //首字母大写
  return str.charAt(0).toUpperCase() + str.slice(1);
}
//找到上一级common目录下的.vue结尾的所有文件
const requireComponent = require.context("./common", false, /\.vue$/);

console.log(requireComponent.keys());
//["./child1.vue", "./child2.vue"]
const install = (Vue) => {
  requireComponent.keys().forEach((fileName) => {
    let config = requireComponent(fileName);
    let componentName = changeStr(
      fileName.replace(/^\.\//, "").replace(/\.\w+$/, "")
    );
    console.log(config);
    // console.log(componentName); //Child1   Child2
    Vue.component(componentName, config.default || config);
  });
};
export default {
  install,
};

// 引用方式  main.js

// 导入组件库
import wui from '../packages'
// 注册组件库
Vue.use(wui)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Huang-ioi

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值