vue中 components自动注册,不需要一个个引入注册方法

1.在compontents文件夹新建js文件 componentRegister
不能引用文件夹里的组件**

import Vue from "vue";
function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
const requireComponent = require.context(
".",
false,
/\.vue$/
// 找到components文件夹下以.vue命名的文件
);
export default requireComponent.keys().forEach(fileName => {
const componentConfig = requireComponent(fileName);
const componentName = capitalizeFirstLetter(
fileName.replace(/^\.\//, "").replace(/\.\w+$/, "")
// 因为得到的filename格式是: './baseButton.vue', 所以这里我们去掉头和尾,只保留真正的文件名
);
Vue.component(componentName, componentConfig.default || componentConfig);
});

可以引入文件夹里面的组件

import Vue from "vue";
const requireComponent = require.context(
"../components/",
true,
/^.*\.vue$/
// 找到components文件夹下以.vue命名的文件
);
export default requireComponent.keys().forEach(fileName => {
const componentConfig = requireComponent(fileName);
if (fileName.endsWith(".vue")) {
// + 1 代表不包过当前的 /
const beginSlice = fileName.lastIndexOf("/") + 1;
const endSlice = fileName.lastIndexOf(".vue");
const componentName = fileName.slice(beginSlice, endSlice);
Vue.component(componentName, componentConfig.default || componentConfig);
}
});

2,main.js

import componentRegister from "@/components/componentRegister.js";


new Vue({
componentRegister,
router,
render: h => h(App)
}).$mount("#app");

你可能感兴趣的:(vue.js,javascript,前端)