19-普通组件的注册使用

普通组件的注册使用-局部注册

一. 组件注册的两种方式:
1.局部注册:只能在注册的组件内使用

        (1) 创建 vue 文件(单文件组件)

        (2) 在使用的组件内导入,并注册 components:{ 组件名: 组件对象 }

        

// 导入需要注册的组件
import 组件对象 from.vue文件路径
import HmHeader from './components/XxHeader'

export default { 
    // 局部注册
    components: {
        组件名: 组件对象
        HmHeader: HmHeader
    }
}

2.全局注册:所有组件内都能直接使用(不需要再次导入)

        (1) 创建 .vue文件(单文件组件)

        (2) main.js 内导入, 并进行全局注册 Vue.component(组件名, 组件对象)

// main.js
// 导入需要全局注册的组件
import XxButton from './components/XxButton'

// 调用 Vue.component 进行全局注册
// Vue.component('组件名',组件对象)
Vue.component('XxButton', XxButton )

二. 使用:

        * 当成 html 标签使用 <组件名></组件名>

        * 技巧: 一般都用局部注册,如果发现确实是通用组件,再抽离到全局

三. 注意:

        * 组件名规范 -> 大驼峰命名法, 如 XxHeader

局部注册代码演示:

// 子组件: components / XxHeader.vue
<template>
    <div class="xx-header">
        我是头部组件xx-header
    </div>
  </template>
  
  
  <script>
  export default{
  
  
  }
  </script>
  
  
  
  <style>
  .xx-header{
    height: 100px;
    line-height: 100px;
    text-align: center;
    font-size: 30px;
    background-color: #8064a2;
    color:white;
  }

  </style>
//子组件: components / XxMain.vue
<template>
    <div class="xx-main">
        我是主体组件xx-main
    </div>
  </template>
  
  
  <script>
  export default{
  
  
  }
  </script>
  
  
  
  <style>
  .xx-main{
    height: 400px;
    line-height: 100px;
    text-align: center;
    font-size: 30px;
    background-color: #f79646;
    color:white;
    margin: 20px 0;
  }

  </style>
// 子组件: components / XxFooter.vue
<template>
    <div class="xx-footer">
        我是低部组件xx-footer
    </div>
  </template>
  
  
  <script>
  export default{
  
  
  }
  </script>
  
  
  
  <style>
  .xx-footer{
    height: 100px;
    line-height: 100px;
    text-align: center;
    font-size: 30px;
    background-color: #4f81bd;
    color:white;
  }

  </style>
// 根组件 App.vue
<template>
  <div class="App">
    <!-- 头部组件 -->
    <XxHeader></XxHeader>

    <!-- 主体组件 -->
    <XxMain></XxMain>

    <!-- 底部组件 -->
    <XxFooter></XxFooter>

    <!--如果 XxMain + tab 不快捷出标签 -> 需要配置 vscode
      左下角设置中搜索 -> trigger on tab ->  勾上
    -->
    

  </div>
</template>


<script>
import XxHeader from './components/XxHeader.vue'
import XxMain from './components/XxMain.vue'
import XxFooter from './components/XxFooter.vue'

export default{
    components:{
      // '组件名':组件对象
      XxHeader:XxHeader,
      XxMain,
      XxFooter
    }

}
</script>



<style>
.App{
  width: 600px;
  height: 700px;
  background-color: #87ceeb;
  margin: 0 auto;
  padding: 20px;
}
</style>

全局注册代码演示:

// 子组件: components / XxButton.vue

<template>
    <button class=xx-button>通用按钮</button>
  </template>
  
  
  <script>
  export default{
  
  
  }
  </script>
  
  
  
  <style>
  
.xx-button{
    height: 50px;
    line-height: 50px;
    padding: 0 20px;
    background-color: #3bae56;
    border-radius: 5px;
}
  </style>
// main.js 进行全局注册

// 文件核心作用: 导入App.vue, 基于App.vue创建结构渲染index.html

import Vue from 'vue'
import App from './App.vue'

// 1. 编写导入的代码,往代码的顶部编写(规范)
import XxButton from './components/XxButton'


Vue.config.productionTip = false

// 2. 组件进行全局注册 -> 在所有的组件范围内都能直接使用
// Vue.component(组件名,组件对象)
Vue.component("XxButton",XxButton)


new Vue({
  // el: "#app", 作用: 和 $mount('选择器')作用一致,用于指定Vue所管理容器
  //render: h => h(App),
  render:(createElement) => {
    // 基于 App 创建元素结构
    return createElement(App)
  }
}).$mount('#app')
// 在其他组件直接使用(不需要导入) XxFooter.vue

<template>
    <div class="xx-footer">
        我是低部组件xx-footer

        <!-- 全局组件使用 -->
        <XxButton></XxButton>
    </div>
  </template>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值