vue组件注册

大家好,我是龙骑士,今天给大家讲一下vue的组件注册

  •  全局组件注册
//w3c标准命名,注册全局组件
Vue.component('global-component',{

})
//首字母大写命名,注册全局组件
Vue.component('GlobalComponent',{})
  • 局部组件注册

在一个普通js文件内定义号组件模板: 

var ComponentA={};
var ComponentB={};
var ComponentC={};
  •  在components选项中定义你想要的组件
new Vue({
el:'#app',
    components{
        'component-a':ComponentA,
        'component-b':ComponentB,
        'component-c':ComponentC
}
})
  • 如果你想要在ComponentB中调用ComponentA可用,需要这样写
var ComponentA={};
var ComponentB={
    components:{
        'component-a':ComponentA
},
//...
}
  • 如果你想要在ComponentB中调用ComponentA可用,还可以这样写
var ComponentA={//...};
import ComponentA from './ComponentA.vue';
export defalt({
    //...
    components:{
        'component-a':ComponentA
}
})
  • 基础组件的全局化自动注册

可能你的许多组件只是包裹了一个输入框或一个 按钮之类的元素,是相对通用的组件,我们优势把他们称作基础组件.他们在各个组件中会被频繁引用到,会导致有一个长长的引入列表

import ComponentA from './ComponentA.vue';
import ComponentB from './ComponentB.vue';
import ComponentC from './CompenentC.vue';

如果你使用了webpack,那么你就可以使用require.context()来全局注册这些基础组件,下面是全局注册基础组件的代码

import Vue from './vue'
import upperFirst from 'lodash/upperFirst'
import camlcase from 'lodash/camlcase'

const requireComponents=require.context(
    //其组件目录相对路径
    './components',
    //是否查询子目录
    false,
    //匹配基础组件文件名的正则表达式
    
) 
requireComponents.keys().forEach(
    filename=>{
        //获取组件配置
        const componentConfig=requireComponents(fileName);
        //获取组件的pascalcase命名
        const componentName=upperFirst(
            camlCase()    
)
})

全局注册行为必须在根vue实例注册(通过new Vue)创建之前

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

龙骑士-黎明

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

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

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

打赏作者

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

抵扣说明:

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

余额充值