欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何把vue下的所有组件全部挂载到全局,不需要在页面内引用

程序员文章站 2024-03-15 23:39:06
...
  1. 首先在js目录下新建一个js,比如:global.js

  2. 如何把vue下的所有组件全部挂载到全局,不需要在页面内引用

  3. 这里面写上这些

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')
    }
  },
  1. 在main.js上直接引入
import '@s-a/js/Req/global.js'
  1. 当你要使用组件的时候,就直接使用文件名的组件(注意:在使用组件时记得要小写并且短横线分隔)
    如何把vue下的所有组件全部挂载到全局,不需要在页面内引用
<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>
相关标签: 配置 vue.js