vue组件及组件的注册

什么是组件?

它是vue.js最强大的功能之一,是可扩展的html元素,是封装可重用的代码,同时也是Vue实例,可以接受相同的选项对象(除了一些根级特有的选项) 并提供相同的生命周期钩子组件
例如 页面头部、侧边、内容区,尾部,上传图片,等多个页面要用到一样的就可以做成组件,提高了代码的复用率

组件注册

组件的注册分为全局注册和局部注册

局部注册

局部注册(在哪里挂载 在哪里注册 类似局部变量)
在当前组件内部使用components属性 直接声明挂载

示例:

<template>
   <div id="App">
      <!-- 挂载的组件 写的时候和标签一致 -->
      <v-header></v-header>
      <Body/>    //名字如果和标签一致的话 简写
   </div>
</template>

<script>
//要注册组件 先引入组件
//@ 路径代表 src开发目录   或者 可以相对  ./
// key:value
import Header from '@/components/Head.vue';
import Body from './components/Body';
export default {
    
    
  name: 'App',
  components:{
    
       //使用components属性  直接声明挂载
    'v-header':Header,
     Body //名字如果和标签一致的话 可以进行简写
  }
}
</script>

<style>
#App{
    
    
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
}
</style>

头部组件:

<template>
  <div id="Head">
    我是头部组件
    <br />
  </div>
</template>
<script>
export default {
    
    
  name: "Head",
};
</script>
<style>
#Head {
    
    
  flex: 1;
  border-bottom: 1px solid #000;
}
</style>

结果:我是头部组件

全局注册

在整个vue对象上进行注册;可以在main.js 中接入vue变量 进行全局注册
示例:
设message文件为全局注册

import component from './Component'
let Vue = createApp(component);//接入变量
//引入组件
import MessageBox from '@/components/common/Message';
//全局注册
Vue.component('v-messageBox', MessageBox);

message组件:

<template>
  <div id="MessageInfo">消息提示组件!</div>
</template>
<script>
export default {
    
    
  name: "MessageInfo",
};
</script>
<style>
</style>

头部组件引入其message

<template>
  <div id="Head">
    我是头部组件
    <br />
    //要与上面的标签一致化
    <v-messageBox></v-messageBox>
  </div>
</template>
<script>
export default {
    
    
  name: "Head",
};
</script>
<style>
#Head {
    
    
  flex: 1;
  border-bottom: 1px solid #000;
}
</style>

结果为:
我是头部组件
消息提示组件

以上的这些组件注册方案 属于同步挂载 如若大量使用可能会造成加载慢

猜你喜欢

转载自blog.csdn.net/weixin_47863547/article/details/115428535