vue中全局引入"base-name.vue" 按需引入".vue"(自定义的组件)

vue的组件均放在 src/components 文件内

1、全局引入(自定义的组件 base-name.vue  使用时<base-name></base-name>即可)

自动引入以base-name.vue格式的所有组件(name为自定义的组件名)

首先下载lodash即   npm install lodash

然后在main.js中输入

import upperFirst from 'lodash/upperFirst'
import camelCase from 'lodash/camelCase'   //引入工具
const requireComponent = require.context(
  './components',
  false,
  /base-\w+\.vue$/
);
requireComponent.keys().forEach(fileName => {
  const componentConfig = requireComponent(fileName)
  const componentName = upperFirst(
    camelCase(
      fileName
        .replace(/^\.\//, '')
        .replace(/\.vue$/, '')
    )
  )
  Vue.component(componentName, componentConfig.default || componentConfig)
})

即可在所有组件以<base-name></base-name>的形式使用

2、按需引入(例如:在App.vue中引入其他在组件)

组件仍放在components文件夹下(foot.vue与login.vue)

<template>
  <div id="app">
    <login @login-show="login"></login>//@login-show 为子组件与父组件间的事件通讯,可以忽略
    <foot></foot> //组件的使用
  </div>
</template>

<script>
import foot from '@/components/foot';
import login from '@/components/login';//引入组件

  export default {
  name: 'App',
  data () {
    return {
      show:''
    }
   },
  methods:{
    login:function (data) {
      this.show=data
    }

  },
  components:{                //引入组件名
    foot,
    login               
  },
}
</script>

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值