如何把vue下的所有组件全部挂载到全局,不需要在页面内引用
程序员文章站
2024-03-15 23:39:06
...
-
首先在js目录下新建一个js,比如:global.js
-
这里面写上这些
const requireComponent = require.context(
'@c-c',//这个是目录简写指的是你的组件存放的路径,
false,
/\.vue$/
// 找到components文件夹下以.vue命名的文件
)
requireComponent.keys().forEach(fileName => {
const componentConfig = requireComponent(fileName)
const componentName = capitalizeFirstLetter(
fileName.replace(/^\.\//, '').replace(/\.\w+$/, '')
// 因为得到的filename格式是: './accordion.vue', 所以这里我们去掉头和尾,只保留真正的文件名
)
Vue.component(componentName, componentConfig.default || componentConfig)
})
如果要简写路径,请在webpack.base.conf.js里面修改
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
vue$: 'vue/dist/vue.esm.js',
'@': resolve('src'),
'@s': resolve('static'),
'@c-p': resolve('src/components/pages'),
'@c-c': resolve('src/components/common'),
'@s-a': resolve('src/assets'),
'@$Axios': resolve('src/assets/js/http/'),
'@api': resolve('src/api')
}
},
- 在main.js上直接引入
import '@s-a/js/Req/global.js'
- 当你要使用组件的时候,就直接使用文件名的组件(注意:在使用组件时记得要小写并且短横线分隔)
<div class="img-list">
<uploader
@record-state="stateFromChild"
@popup-img="popupImg"
v-for="(item, index) in upload"
:key="index"
:upload-object="item"
:bus-type="busType"
></uploader>
</div>
上一篇: 5 - Google Mock 进阶篇 -- 3.2 如何禁用不需要的调用
下一篇: 图像识别模型